{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "[Table of Contents](./table_of_contents.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Discrete Bayes Filter"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from __future__ import division, print_function\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "\n",
       "        <style>\n",
       "        .output_wrapper, .output {\n",
       "            height:auto !important;\n",
       "            max-height:100000px; \n",
       "        }\n",
       "        .output_scroll {\n",
       "            box-shadow:none !important;\n",
       "            webkit-box-shadow:none !important;\n",
       "        }\n",
       "        </style>\n",
       "    "
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#format the book\n",
    "import book_format\n",
    "book_format.set_style()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The Kalman filter belongs to a family of filters called *Bayesian filters*. Most textbook treatments of the Kalman filter present the Bayesian formula, perhaps shows how it factors into the Kalman filter equations, but mostly keeps the discussion at a very abstract level. \n",
    "\n",
    "That approach requires a fairly sophisticated understanding of several fields of mathematics, and it still leaves much of the work of understanding and forming an intuitive grasp of the situation in the hands of the reader.\n",
    "\n",
    "I will use a different way to develop the topic, to which I owe the work of Dieter Fox and Sebastian Thrun a great debt. It depends on building an intuition on how Bayesian statistics work by tracking an object through a hallway - they use a robot, I use a dog. I like dogs, and they are less predictable than robots which imposes interesting difficulties for filtering. The first published example of this that I can find seems to be Fox 1999 [1], with a fuller example in Fox 2003 [2]. Sebastian Thrun also uses this formulation in his excellent Udacity course Artificial Intelligence for Robotics [3]. In fact, if you like watching videos, I highly recommend pausing reading this book in favor of first few lessons of that course, and then come back to this book for a deeper dive into the topic.\n",
    "\n",
    "Let's now use a simple thought experiment, much like we did with the g-h filter, to see how we might reason about the use of probabilities for filtering and tracking."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Tracking a Dog\n",
    "\n",
    "Let's begin with a simple problem. We have a dog friendly workspace, and so people bring their dogs to work. Occasionally the dogs wander out of offices and down the halls. We want to be able to track them. So during a hackathon somebody invented a sonar sensor to attach to the dog's collar. It emits a signal, listens for the echo, and based on how quickly an echo comes back we can tell whether the dog is in front of an open doorway or not. It also senses when the dog walks, and reports in which direction the dog has moved. It connects to the network via wifi and sends an update once a second.\n",
    "\n",
    "I want to track my dog Simon, so I attach the device to his collar and then fire up Python, ready to write code to track him through the building. At first blush this may appear impossible. If I start listening to the sensor of Simon's collar I might read **door**, **hall**, **hall**, and so on. How can I use that information to determine where Simon is?\n",
    "\n",
    "To keep the problem small enough to plot easily we will assume that there are only 10 positions in the hallway, which we will number 0 to 9, where 1 is to the right of 0. For reasons that will be clear later, we will also assume that the hallway is circular or rectangular. If you move right from position 9, you will be at position 0.  \n",
    "\n",
    "When I begin listening to the sensor I have no reason to believe that Simon is at any particular position in the hallway. From my perspective he is equally likely to be in any position. There are 10 positions, so the probability that he is in any given position is 1/10. \n",
    "\n",
    "Let's represent our belief of his position in a NumPy array. I could use a Python list, but NumPy arrays offer functionality that we will be using soon."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "belief = np.array([1./10]*10)\n",
    "print(belief)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In [Bayesian statistics](https://en.wikipedia.org/wiki/Bayesian_probability) this is called a [*prior*](https://en.wikipedia.org/wiki/Prior_probability). It is the probability prior to incorporating measurements or other information. More completely, this is called the *prior probability distribution*. A [*probability distribution*](https://en.wikipedia.org/wiki/Probability_distribution) is a collection of all possible probabilities for an event. Probability distributions always sum to 1 because something had to happen; the distribution lists all possible events and the probability of each.\n",
    "\n",
    "I'm sure you've used probabilities before - as in \"the probability of rain today is 30%\". The last paragraph sounds like more of that. But Bayesian statistics was a revolution in probability because it treats probability as a belief about a single event. Let's take an example. I know that if I flip a fair coin infinitely many times I will get 50% heads and 50% tails. This is called [*frequentist statistics*](https://en.wikipedia.org/wiki/Frequentist_inference) to distinguish it from Bayesian statistics. Computations are based on the frequency in which events occur.\n",
    "\n",
    "I flip the coin one more time and let it land. Which way do I believe it landed? Frequentist probability has nothing to say about that; it will merely state that 50% of coin flips land as heads. In some ways it is meaningless to assign a probability to the current state of the coin. It is either heads or tails, we just don't know which. Bayes treats this as a belief about a single event - the strength of my belief or knowledge that this specific coin flip is heads is 50%. Some object to the term \"belief\"; belief can imply holding something to be true without evidence. In this book it always is a measure of the strength of our knowledge. We'll learn more about this as we go.\n",
    "\n",
    "Bayesian statistics takes past information (the prior) into account. We observe that it rains 4 times every 100 days. From this I could state that the chance of rain tomorrow is 1/25. This is not how weather prediction is done. If I know it is raining today and the storm front is stalled, it is likely to rain tomorrow. Weather prediction is Bayesian.\n",
    "\n",
    "In practice statisticians use a mix of frequentist and Bayesian techniques. Sometimes finding the prior is difficult or impossible, and frequentist techniques rule. In this book we can find the prior. When I talk about the probability of something I am referring to the probability that some specific thing is true given past events. When I do that I'm taking the Bayesian approach.\n",
    "\n",
    "Now let's create a map of the hallway. We'll place the first two doors close together, and then another door further away. We will use 1 for doors, and 0 for walls:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "hallway = np.array([1, 1, 0, 0, 0, 0, 0, 0, 1, 0])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "I start listening to Simon's transmissions on the network, and the first data I get from the sensor is **door**. For the moment assume the sensor always returns the correct answer. From this I conclude that he is in front of a door, but which one? I have no reason to believe he is in front of the first, second, or third door. What I can do is assign a probability to each door. All doors are equally likely, and there are three of them, so I assign a probability of 1/3 to each door. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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Zv3jP/6jfbDp6V3+jEAg4B4IOp+pan8s1oFCktLS0txlsXZYr9vtPKaO2431ImZkZMhxnJjbDQaDXbablZWltLQ0paWlud+w3W2347+7227n59qxYazttj/XWK+v1+2e7temvVFGRobxtbE91/bnaWvYk+12dytL03Y7Ptfutuu1YefeXveXzmzPNTMzU+Fw+LQ0jEQinr9vYm3XtB+GQiFlZmZGjTtVjhHxbLfjv7vbbnffy+0/3Dv+7WjH55rMx4juttubx4j09HS1trYqEAik5DGiu+325jEiKyvL/TmWaseIWHp7P2z/WRYIBNztpdIxorvt9uYxoruf950l4zHiTP0e0bFRx+eaCscI6dR+j4hXXDdLmDVrlsLhsN55552oxysqKlRaWqqVK1fqhhtuiLnuF7/4RTU1Nen999+PetJ333237r//fu3YsSPqbBM3SwAAAADgxWm/WcLUqVO1devWLqcR268R7HzNYkcffPCBzj777C4zvy984QuKRCLu9YsAAAAAcLrFNRFasGCBGhoatH79+qjHV69ercLCQs2cObPbdQsLC/Xee+91uRbwL3/5iyR1eVMYAAAAAJwucb1H6KKLLtKcOXO0ZMkS1dfXa/z48SorK9NLL72kNWvWuGd7Fi9erNWrV6uyslJFRUWSpNtuu0233nqr5s+fr+9+97vKycnRhg0b9NBDD+lrX/talzuxAAAAAMDpEvfNEp599lktW7ZMy5cvV21trUpKSlRWVqYrr7zS/ZpwOKxwOBx194ZbbrlFI0aM0M9//nNdd911OnHihEaPHq27775bt912W+88m8+ogwcPum+Q63y7UJxEIzP62NHIjkZm9LGjkRl97GhkRyPv4rpZwpnEzRI+tWnTJvd+8Jw5i41GZvSxo5EdjczoY0cjM/rY0cjOr41O+80SAAAAAOCzgDNCKaCxsVGO4ygQCER9CjE+RSMz+tjRyI5GZvSxo5EZfexoZOfXRj2ZOzARAgAAAJDSuDQOAAAAADxgIgQAAADAd+K+fTbOvKamJvdaz5ycnEQPJynRyIw+djSyo5EZfexoZEYfOxrZ0cg7JkIpYMeOHb68DWI8aGRGHzsa2dHIjD52NDKjjx2N7GjkHZfGAQAAAPAdzgilgPz8fPcTghEbjczoY0cjOxqZ0ceORmb0saORHY284/bZAAAAAFIat88G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pEUjOxqZ0ceORmb0QW9gP/KOiRAAAAAA3+HSOMAHSkpK5DiOAoFAooeStGhkRyMz+tjRyIw+6A3sR94xEQJ8ICsrK9FDSHo0sqORGX3saGRGH/QG9iPv4r40rqGhQUuXLlVhYaGys7M1Y8YMrVu3ztO6R44c0Xe+8x0NHjxYOTk5mjVrljZs2BD3oAEAAADgVMR9Rujyyy/Xu+++qxUrVqi4uFhr167VVVddpUgkokWLFnW7XktLiy644AIdPXpUDz/8sIYMGaJHHnlEF154oV599VWdd955p/REAAAAAMCruCZCL7zwgl555RV38iNJs2fP1p49e3T77bfriiuuUDAYjLnu448/rvLycr355puaNWuWu+706dN1xx136O233476esdxumwjEonEM9zTpn+mP665PJXeNEoux48fd/+7b9++CRxJ8qKRHY3M6GNHI7NU7MPP++STivtRb4j1GsWaT3QUcGxf0cH111+vdevWqa6uTunpn86hysrKtGjRIr3xxhs699xzY647Z84c7du3T9u2bYt6/MEHH9Sdd96p/fv3a8SIEe7joVBIjY2NXocGAAAAAK7c3NyoOUtncb1HqLy8XJMmTeqywWnTprnLTeu2f12sdSsqKuIZCgAAAAD0WFwToZqaGg0aNKjL4+2P1dTUnJZ1AQAAAKA3xX3XONM9yW33Kz+VdQEAAACgt8R1s4T8/PyYZ25qa2slKeYZn56um5aWptzc3KjHAoEAEyYAAAAAURzH6XJzhLQ08zmfuCZCU6dOVVlZmUKhUNT7hDZv3ixJKi0tNa7b/nUddbduWlqadfAAAAAA0BNxzTQWLFighoYGrV+/Purx1atXq7CwUDNnzjSuu23btqjbZIdCIa1Zs0YzZ85UYWFhnEMHAAAAgJ6J6/bZkjR37ly99957+tnPfqbx48errKxMjz32mNasWaNvfvObkqTFixdr9erVqqysVFFRkaSTH6h69tlnq76+XitWrNCQIUP06KOP6vnnn+cDVQEAAACcUXFfe/bss8/qW9/6lpYvX64LL7xQb7/9tsrKytxJkCSFw2GFw+Go6/SysrK0YcMGzZ49W7fccovmz5+vQ4cO6cUXX2QS1I2GhgYtXbpUhYWFys7O1owZM7Ru3bpEDytpHD9+XHfccYfmzp2rgoICBQIB3XPPPYkeVtJ47bXXdO2116qk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\n",
      "text/plain": [
       "<Figure size 900x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import kf_book.book_plots as book_plots\n",
    "from kf_book.book_plots import figsize, set_figsize\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "belief = np.array([1./3, 1./3, 0, 0, 0, 0, 0, 0, 1/3, 0])\n",
    "book_plots.bar_plot(belief)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This distribution is called a [*categorical distribution*](https://en.wikipedia.org/wiki/Categorical_distribution), which is a discrete distribution describing the probability of observing $n$ outcomes. It is a [*multimodal distribution*](https://en.wikipedia.org/wiki/Multimodal_distribution) because we have multiple beliefs about the position of our dog. Of course we are not saying that we think he is simultaneously in three different locations, merely that we have narrowed down our knowledge to one of these three locations. My (Bayesian) belief is that there is a 33.3% chance of being at door 0, 33.3% at door 1, and a 33.3% chance of being at door 8.\n",
    "\n",
    "This is an improvement in two ways. I've rejected a number of hallway positions as impossible, and the strength of my belief in the remaining positions has increased from 10% to 33%. This will always happen. As our knowledge improves the probabilities will get closer to 100%.\n",
    "\n",
    "A few words about the [*mode*](https://en.wikipedia.org/wiki/Mode_(statistics&#41;)\n",
    "of a distribution. Given a set of numbers, such as {1, 2, 2, 2, 3, 3, 4}, the *mode* is the number that occurs most often. For this set the mode is 2. A set can contain more than one mode. The set {1, 2, 2, 2, 3, 3, 4, 4, 4} contains the modes 2 and 4, because both occur three times. We say the former set is [*unimodal*](https://en.wikipedia.org/wiki/Unimodality), and the latter is *multimodal*.\n",
    "\n",
    "Another term used for this distribution is a [*histogram*](https://en.wikipedia.org/wiki/Histogram). Histograms graphically depict the distribution of a set of numbers. The bar chart above is a histogram.\n",
    "\n",
    "I hand coded the `belief` array in the code above. How would we implement this in code? We represent doors with 1, and walls as 0, so we will multiply the hallway variable by the percentage, like so;"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.333 0.333 0.    0.    0.    0.    0.    0.    0.333 0.   ]\n"
     ]
    }
   ],
   "source": [
    "belief = hallway * (1./3)\n",
    "print(belief)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Extracting Information from Sensor Readings\n",
    "\n",
    "Let's put Python aside and think about the problem a bit. Suppose we were to read the following from Simon's sensor:\n",
    "\n",
    "  * door\n",
    "  * move right\n",
    "  * door\n",
    "  \n",
    "\n",
    "Can we deduce Simon's location? Of course! Given the hallway's layout there is only one place from which you can get this sequence, and that is at the left end. Therefore we can confidently state that Simon is in front of the second doorway. If this is not clear, suppose Simon had started at the second or third door. After moving to the right, his sensor would have returned 'wall'. That doesn't match the sensor readings, so we know he didn't start there. We can continue with that logic for all the remaining starting positions. The only possibility is that he is now in front of the second door. Our belief is:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "belief = np.array([0., 1., 0., 0., 0., 0., 0., 0., 0., 0.])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "I designed the hallway layout and sensor readings to give us an exact answer quickly. Real problems are not so clear cut. But this should trigger your intuition - the first sensor reading only gave us low probabilities (0.333) for Simon's location, but after a position update and another sensor reading we know more about where he is. You might suspect, correctly, that if you had a very long hallway with a large number of doors that after several sensor readings and positions updates we would either be able to know where Simon was, or have the possibilities narrowed down to a small number of possibilities. This is possible when a set of sensor readings only matches one to a few starting locations.\n",
    "\n",
    "We could implement this solution now, but instead let's consider a real world complication to the problem."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Noisy Sensors\n",
    "\n",
    "Perfect sensors are rare. Perhaps the sensor would not detect a door if Simon sat in front of it while scratching himself, or misread if he is not facing down the hallway. Thus when I get **door** I cannot use 1/3 as the probability. I have to assign less than 1/3 to each door, and assign a small probability to each blank wall position. Something like\n",
    "\n",
    "```Python\n",
    "[.31, .31, .01, .01, .01, .01, .01, .01, .31, .01]\n",
    "```\n",
    "\n",
    "At first this may seem insurmountable. If the sensor is noisy it casts doubt on every piece of data. How can we conclude anything if we are always unsure?\n",
    "\n",
    "The answer, as for the problem above, is with probabilities. We are already comfortable assigning a probabilistic belief to the location of the dog; now we have to incorporate the additional uncertainty caused by the sensor noise. \n",
    "\n",
    "Say we get a reading of **door**, and suppose that testing shows that the sensor is 3 times more likely to be right than wrong. We should scale the probability distribution by 3 where there is a door. If we do that the result will no longer be a probability distribution, but we will learn how to fix that in a moment.\n",
    "\n",
    "Let's look at that in Python code. Here I use the variable `z` to denote the measurement. `z` or `y` are customary choices in the literature for the measurement. As a programmer I prefer meaningful variable names, but I want you to be able to read the literature and/or other filtering code, so I will start introducing these abbreviated names now."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "belief: [0.3 0.3 0.1 0.1 0.1 0.1 0.1 0.1 0.3 0.1]\n",
      "sum = 1.6000000000000003\n"
     ]
    },
    {
     "data": {
      "image/png": "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/br77rsTPcSkcvDgQU2dOlW5ubk6duyYGhoaEj2khHvjjTc0Z84cPfjgg5ozZ07UspKSEiaM/2fdunX65je/qa9//etavHix8vLyVFFRocrKSq1YsSLRw0u4iooKVVVVdXl8wYIFysrK0t69exUMBhMwsuSwdetWnXPOOZo0aZLuuusuDRkyRH/84x/1wAMP6NJLL9Vvf/vbRA8xod577z196Utf0rnnnqvvf//7chxH//RP/6QPPvhAmzZt0uzZsxM9xOTlICn993//tyPJWbduXdTjc+fOdQoKCpxQKJSgkSWPSCTiRCIRx3Ecp6qqypHk3HPPPYkdVBI5fPhwl8eOHz/uDBs2zLnwwgsTMKLUMWvWLOess85K9DCSzmWXXeYsWLDA+da3vuXk5uYmejhJYdOmTY4k55lnnkn0UJLWgQMHnNzcXGfp0qWJHkpKeeONNxxJzt13353ooSTc8uXLHUnOJ598EvX4jTfe6EhyamtrEzSy5DB//nxn2LBhTmNjo/tYfX29M2TIEOe8885L4MiSH7dlS1LPP/+88vLytGjRoqjHr732WlVWVkbddMKvuJ262dChQ7s8lpeXpylTpmj//v0JGFHqGDJkSNSdMSGtXbtWf/jDH/TYY48leihIMatXr1ZjY6N++MMfJnooKeWJJ55QIBDQddddl+ihJFxGRoYkqX///lGPDxgwQGlpacrMzEzEsJLGm2++qQsuuEA5OTnuY3379tWXv/xlvfXWWzp06FACR5fcmAglqbKyMk2ePLnLL2PTp093lwPxOnbsmP76179q6tSpiR5KUolEIgqFQqqqqtJjjz2mV155hV/aOjhy5IiWLVumlStXatSoUYkeTlK6+eablZ6ern79+mn+/Pn605/+lOghJY0//vGPGjRokLZv366ZM2cqPT1dQ4cO1Xe/+13V19cnenhJ6dixY3r22Wd14YUXauzYsYkeTsJ961vf0oABA7R06VLt2rVLx48f1+9//3utWrVKN998c5fPnfSb1tZWZWVldXm8/bFYH1+Dk5gIJamampqYH1Db/lisD6cFbG6++WY1NjZq+fLliR5KUrnpppuUkZGhoUOH6vbbb9e//uu/6jvf+U6ih5U0brrpJk2aNElLly5N9FCSTv/+/fW9731Pq1at0qZNm/TII49o//79uuCCC/TKK68kenhJ4eDBg2pqatKiRYt05ZVX6rXXXtMdd9yh//iP/9All1zS5QMQIZWWlurEiRNasmRJooeSFMaMGaM///nPKisr0/jx49WvXz8tWLBA3/rWt/TII48kengJN2XKFL399tuKRCLuY6FQyL16iN8Zu8e1H0nMdNkXl4QhXv/wD/+gp59+Wv/2b/+mc845J9HDSSp33XWXrr/+eh05ckQvvPCCbrnlFjU2Nur//b//l+ihJdyGDRv0wgsv6IMPPuC4E8PZZ5+ts88+2/3/X/rSl7Rw4UJNmzZNd955p+bPn5/A0SWHSCSi5uZm3XPPPfrRj34kSbrggguUmZmpZcuWaePGjfrqV7+a4FEmlyeeeEKDBw/WwoULEz2UpLBnzx4tWLBAw4YN07PPPqv8/Hy98847euCBB9TQ0KAnnngi0UNMqFtvvVVLlizRLbfcouXLlysSiei+++7T3r17JUlpaYipSrsAAAT5SURBVJz36A5lktTgwYNjzuBra2slKebZIqA79913nx544AH94z/+o2655ZZEDyfpjB49Wp/73Od0ySWX6Be/+IVuvPFG/fjHP455Fyc/aWho0M0336xbb71VBQUFOnr0qI4eParW1lZJ0tGjR9XY2JjgUSafAQMG6LLLLtNHH32kEydOJHo4CTd48GBJ6jIpvPjiiyVJf/3rX8/4mJLZRx99pPfff1/XXHNNzMud/OhHP/qR6uvr9corr+hrX/uavvzlL+uOO+7Qz3/+cz355JP6wx/+kOghJtR1112nlStX6te//rVGjRql0aNHa+vWre4/5o0cOTLBI0xeTISS1LRp07Rt2zaFQqGox9uv8ywpKUnEsJCC7rvvPt1777269957dddddyV6OCnh3HPPVSgU0q5duxI9lISqrq7W4cOH9fDDD2vgwIHun9LSUjU2NmrgwIFRnyGHz7Rf7sVZtM/e29pZeyP+tTpa+9mN66+/PsEjSR4ffvihpkyZ0uW9QJ///Ocl8b5pSfrhD3+o6upqbdmyRXv27NFbb72luro65ebmchWIAUefJLVw4UI1NDRow4YNUY+vWbNGBQUFmjVrVoJGhlRy//33695779Xdd9+te+65J9HDSRmbNm1SWlqaxo0bl+ihJNTw4cO1adOmLn/mz5+v7Oxsbdq0SQ888ECih5l06urq9Pvf/14zZ85UdnZ2ooeTcF/72tckSS+99FLU4y+++KIk6Qtf+MIZH1Oyamlp0dq1a3XuuefyD54dFBQUqLy8vMtnl/35z3+WJG7i8n+ysrJUUlKiwsJC7du3T7/5zW90ww03qE+fPokeWtLiPUJJ6uKLL9bcuXO1dOlS1dfXa8KECSotLdXLL7+stWvX+vqD1Tp66aWX1NjYqOPHj0s6+aFrzz77rCTpkksuibqVpN88/PDDWrFihS666CJdeumlXT6ZnF8+pBtvvFH9+vXTueeeq2HDhqm6ulrPPPOMfvOb3+iOO+5Qfn5+ooeYUNnZ2brgggu6PP7UU08pGAzGXOY3ixcvdi+tHDJkiHbu3KmHH35Yhw8f1lNPPZXo4SWFefPmacGCBfrJT36iSCSiL3zhC3r//fd133336bLLLtMXv/jFRA8xafzXf/2XamtrORvUybJly3T55Zdr7ty5uv322zVkyBC9/fbbeuihhzRlyhT3Mku/Kisr04YNG/S5z31OWVlZ2rx5s1auXKmJEyfq/vvvT/TwkluCP8cIBsePH3duu+02Z/jw4U5mZqYzffp0p7S0NNHDSiqFhYWOpJh/du/enejhJdT555/fbRu+9U968sknnS996UvOkCFDnPT0dGfAgAHO+eef7/z6179O9NCSGh+o+pmHHnrImTlzptO/f38nGAw6+fn5zsKFC51333030UNLKk1NTc4Pf/hD56yzznLS09Od0aNHOz/+8Y+d5ubmRA8tqcydO9fJzc116uvrEz2UpPP666878+bNc4YPH+706dPHKSoqcn7wgx841dXViR5awu3YscP58pe/7AwaNMjJzMx0JkyY4Nx9991OQ0NDooeW9AKOw30rAQAAAPgL7xECAAAA4DtMhAAAAAD4DhMhAAAAAL7DRAgAAACA7zARAgAAAOA7TIQAAAAA+A4TIQAAAAC+w0QIAAAAgO8wEQIAAADgO0yEAAAAAPgOEyEAAAAAvvP/Aa28i/Bu/xfDAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 900x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def update_belief(hall, belief, z, correct_scale):\n",
    "    for i, val in enumerate(hall):\n",
    "        if val == z:\n",
    "            belief[i] *= correct_scale\n",
    "\n",
    "belief = np.array([0.1] * 10)\n",
    "reading = 1 # 1 is 'door'\n",
    "update_belief(hallway, belief, z=reading, correct_scale=3.)\n",
    "print('belief:', belief)\n",
    "print('sum =', sum(belief))\n",
    "plt.figure()\n",
    "book_plots.bar_plot(belief)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This is not a probability distribution because it does not sum to 1.0. But the code is doing mostly the right thing - the doors are assigned a number (0.3) that is 3 times higher than the walls (0.1). All we need to do is normalize the result so that the probabilities correctly sum to 1.0. Normalization is done by dividing each element by the sum of all elements in the list. That is easy with NumPy:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.188, 0.188, 0.062, 0.062, 0.062, 0.062, 0.062, 0.062, 0.188,\n",
       "       0.062])"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "belief / sum(belief)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "FilterPy implements this with the `normalize` function:\n",
    "\n",
    "```Python\n",
    "from filterpy.discrete_bayes import normalize\n",
    "normalize(belief)\n",
    "```\n",
    "\n",
    "It is a bit odd to say \"3 times as likely to be right as wrong\". We are working in probabilities, so let's specify the probability of the sensor being correct, and compute the scale factor from that. The equation for that is\n",
    "\n",
    "$$scale =  \\frac{prob_{correct}}{prob_{incorrect}} = \\frac{prob_{correct}} {1-prob_{correct}}$$\n",
    "\n",
    "\n",
    "\n",
    "Also, the `for` loop is cumbersome. As a general rule you will want to avoid using `for` loops in NumPy code. NumPy is implemented in C and Fortran, so if you avoid for loops the result often runs 100x faster than the equivalent loop.\n",
    "\n",
    "How do we get rid of this `for` loop? NumPy lets you index arrays with boolean arrays. You create a boolean array with logical operators. We can find all the doors in the hallway with:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ True,  True, False, False, False, False, False, False,  True,\n",
       "       False])"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hallway == 1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "When you use the boolean array as an index to another array it returns only the elements where the index is `True`. Thus we can replace the `for` loop with\n",
    "\n",
    "```python\n",
    "belief[hall==z] *= scale\n",
    "```\n",
    "and only the elements which equal `z` will be multiplied by `scale`.\n",
    "\n",
    "Teaching you NumPy is beyond the scope of this book. I will use idiomatic NumPy constructs and explain them the first time I present them. If you are new to NumPy there are many blog posts and videos on how to use NumPy efficiently and idiomatically.\n",
    "\n",
    "Here is our improved version:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "sum = 1.0\n",
      "probability of door = 0.1875\n",
      "probability of wall = 0.06249999999999999\n"
     ]
    },
    {
     "data": {
      "image/png": "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unSpqqurVV9fr6KiIkmXvrj261//ulpbW/X0009r6NChev755/X73/9eW7du1S233OI8x9tvv63p06dr9uzZeuCBB9TY2KhHHnlEAwYM0I4dO5SZmXkFIwAAAACA2OK+ju3VV1/VPffco5UrV2rGjBn68MMPVVNT4xRLkhQOhxUOh13XBmZmZuqtt97StGnT9KMf/UizZ8/W8ePHtWXLFlexJEm33nqrNm/erOPHj2v27Nn60Y9+pGnTpumtt96iWIqhra1Ny5cvV2FhobKysjRp0iStX78+2cNKKV988YVWrFihO+64Q0OGDFEgENC//uu/JntYKeN///d/de+996q8vFx9+/bViBEj9N3vflf/93//l+yhpYy//OUvuvPOOzVq1ChlZ2dr0KBBmjJlitasWZPsoaWsF198UYFAQLm5uckeSkp4++23nc/Xdv+zbdu2ZA8vZbz33nuaNWuW8vLylJ2drdLSUj3xxBPJHlZKWLx4seccYh791Z///GfdddddKiwsVE5OjsrLy/Xzn/9c586dS/bQUsJHH32kb3/72+rXr59yc3M1bdo0vf/++8keVkqL+wwTUs8dd9yh7du36+mnn1ZZWZnWrVunF198UWvXrtWiRYuSPbyUcPDgQU2aNElVVVUqKyvTiy++qMcff5yi6f+bN2+empubNW/ePF1//fVqamrSv/3bv2nHjh164403dNtttyV7iEn39ttva/369br55ps1YsQInT17VmvXrtX69ev1xBNP6LHHHkv2EFPKsWPHNGHCBPXt21dnzpxRW1tbsoeUdG+//bamTZumX/7yl5o2bZqrraKigsJS0rp163TPPffoH/7hH7Ro0SLl5uaqvr5eDQ0NWrlyZbKHl3T19fVqamrqsX327NnKzMzUoUOHFAwGkzCy1PHJJ5/o61//usaNG6ef/exnGjx4sP70pz/pySef1J133qlNmzYle4hJtX37dn3zm9/UjTfeqH/+539WNBrVs88++//au7eQqLYHjuO/vKVpXnK8YGb3IlNRKrVIE0pNU0hEgggkLctLZZRpaalp5IvQBYrgGJWWSEpBV6GajDIL0S52ozC7o5nZ6KTJMOs89NeTx5n4c/hz1p6/vw/Mg8uXL/Mw7LX32muhubkZarUaCxculJ2oTIJM2qVLlwQAcebMmWHj4eHhwsPDQ+h0OkllyqLX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\n",
      "text/plain": [
       "<Figure size 900x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from filterpy.discrete_bayes import normalize\n",
    "\n",
    "def scaled_update(hall, belief, z, z_prob): \n",
    "    scale = z_prob / (1. - z_prob)\n",
    "    belief[hall==z] *= scale\n",
    "    normalize(belief)\n",
    "\n",
    "belief = np.array([0.1] * 10)\n",
    "scaled_update(hallway, belief, z=1, z_prob=.75)\n",
    "\n",
    "print('sum =', sum(belief))\n",
    "print('probability of door =', belief[0])\n",
    "print('probability of wall =', belief[2])\n",
    "book_plots.bar_plot(belief, ylim=(0, .3))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " We can see from the output that the sum is now 1.0, and that the probability of a door vs wall is still three times larger. The result also fits our intuition that the probability of a door must be less than 0.333, and that the probability of a wall must be greater than 0.0. Finally, it should fit our intuition that we have not yet been given any information that would allow us to distinguish between any given door or wall position, so all door positions should have the same value, and the same should be true for wall positions.\n",
    " \n",
    "This result is called the [*posterior*](https://en.wikipedia.org/wiki/Posterior_probability), which is short for *posterior probability distribution*. All this means is a probability distribution *after* incorporating the measurement information (posterior means 'after' in this context). To review, the *prior* is the probability distribution before including the measurement's information. \n",
    "\n",
    "Another term is the [*likelihood*](https://en.wikipedia.org/wiki/Likelihood_function). When we computed `belief[hall==z] *= scale` we were computing how *likely* each position was given the measurement. The likelihood is not a probability distribution because it does not sum to one.\n",
    "\n",
    "The combination of these gives the equation\n",
    "\n",
    "$$\\mathtt{posterior} = \\frac{\\mathtt{likelihood} \\times \\mathtt{prior}}{\\mathtt{normalization}}$$ \n",
    "\n",
    "When we talk about the filter's output we typically call the state after performing the prediction the *prior* or *prediction*, and we call the state after the update either the *posterior* or the *estimated state*. \n",
    "\n",
    "It is very important to learn and internalize these terms as most of the literature uses them extensively.\n",
    "\n",
    "Does `scaled_update()` perform this computation? It does. Let me recast it into this form:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "def scaled_update(hall, belief, z, z_prob): \n",
    "    scale = z_prob / (1. - z_prob)\n",
    "    likelihood = np.ones(len(hall))\n",
    "    likelihood[hall==z] *= scale\n",
    "    return normalize(likelihood * belief)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This function is not fully general. It contains knowledge about the hallway, and how we match measurements to it. We always strive to write general functions. Here we will remove the computation of the likelihood from the function, and require the caller to compute the likelihood themselves.\n",
    "\n",
    "Here is a full implementation of the algorithm:\n",
    "\n",
    "```python\n",
    "def update(likelihood, prior):\n",
    "    return normalize(likelihood * prior)\n",
    "```\n",
    "\n",
    "Computation of the likelihood varies per problem. For example, the sensor might not return  just 1 or 0, but a `float` between 0 and 1 indicating the probability of being in front of a door. It might use computer vision and report a blob shape that you then probabilistically match to a door. It might use sonar and return a distance reading. In each case the computation of the likelihood will be different. We will see many examples of this throughout the book, and learn how to perform these calculations.\n",
    "\n",
    "FilterPy implements `update`. Here is the previous example in a fully general form:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.188, 0.188, 0.062, 0.062, 0.062, 0.062, 0.062, 0.062, 0.188,\n",
       "       0.062])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from filterpy.discrete_bayes import update\n",
    "\n",
    "def lh_hallway(hall, z, z_prob):\n",
    "    \"\"\" compute likelihood that a measurement matches\n",
    "    positions in the hallway.\"\"\"\n",
    "    \n",
    "    try:\n",
    "        scale = z_prob / (1. - z_prob)\n",
    "    except ZeroDivisionError:\n",
    "        scale = 1e8\n",
    "\n",
    "    likelihood = np.ones(len(hall))\n",
    "    likelihood[hall==z] *= scale\n",
    "    return likelihood\n",
    "\n",
    "belief = np.array([0.1] * 10)\n",
    "likelihood = lh_hallway(hallway, z=1, z_prob=.75)\n",
    "update(likelihood, belief)  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Incorporating Movement\n",
    "\n",
    "Recall how quickly we were able to find an exact solution when we incorporated a series of measurements and movement updates. However, that occurred in a fictional world of perfect sensors. Might we be able to find an exact solution with noisy sensors?\n",
    "\n",
    "Unfortunately, the answer is no. Even if the sensor readings perfectly match an extremely complicated hallway map, we cannot be 100% certain that the dog is in a specific position - there is, after all, a tiny possibility that every sensor reading was wrong! Naturally, in a more typical situation most sensor readings will be correct, and we might be close to 100% sure of our answer, but never 100% sure. This may seem complicated, but let's go ahead and program the math.\n",
    "\n",
    "First let's deal with the simple case - assume the movement sensor is perfect, and it reports that the dog has moved one space to the right. How would we alter our `belief` array?\n",
    "\n",
    "I hope that after a moment's thought it is clear that we should shift all the values one space to the right. If we previously thought there was a 50% chance of Simon being at position 3, then after he moved one position to the right we should believe that there is a 50% chance he is at position 4. The hallway is circular, so we will use modulo arithmetic to perform the shift."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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SE5Oxpw5c1BZWYn3338fU6ZMwWeffYbx48frfo1E5L0uXbqEjz76CIMHD8aIESMQFBSEV199FW+++SZ++tOfqpZdvHgxzpw5g9WrVyM9PR1TpkwBAGRkZKC6uhoRERHYtm0bHnjgAdVl6faxy2QyYfLkydi5cyfS0tIwa9YsBAYGYs+ePXj88cdx8OBB5OTkOGX8/vvvMXLkSAwaNAgPPfQQ6urqEBoaquv1bdmyBTt27MDUqVMxZswYfPvtt9i8eTP27NmDL7/8EoMGDXJapz3Hyg8//BAzZsyAv78/ZsyYgdjYWOzfvx+333470tPTdb0GAKiqqsLYsWORl5eHtLQ0zJ8/H/7+/vj++++xbt06TJs2Db17927z94fWzJo1C++//z4SEhKwcOFCGAwGbN26FY899hi++OILzTfxqqurMXr0aPj7++PBBx9EY2MjPvzwQyxcuBA+Pj7KSTR1MYLoOgEQAMTy5cuVP0899ZS44447hMFgEA888IC4cuWKap3169cLAOLBBx8UV69eVc1bvny5ACBeffVV1fSf//znAoAoKipSTb9y5Yro2bOn8PX1FQcOHFDNe+mllwQAcffdd2u2FRcXJ06fPu30mv7xj38IAGL06NGiurpaM/uTTz6pqz7212M0GsXXX3+tmrd48WIBQMyfP181/a677hIAxLBhw0R5eblTm+7Wr6ioSPj7+4vIyEhV/SwWi5g2bZqyDx3t2bNH2a+ORo0aJQCIl156ySlXeXm5Ko/9dbiSmJgoEhMTVdNWrFghAIj77rtPmEwmZfrFixdFv379BACxb98+1Wuz53/++edVbX366acCgLj33ntdZiAicvTyyy8LAGLlypXKtOHDhwuDwSAKCwudlrcfg37+8587zbMfq9evX6+5Lfvx+sknnxRms1mZbjabxfz58wUAsXXrVqdtARC//vWv3Xpd9iwAxMcff6ya99prrwkAYty4carp7T1W2sdrPz8/cejQIdXy9vGw5Tjvqr5ZWVkCgHj00UeFxWJRzautrRVVVVVOr6Pl7w92WmPVe++9JwCIW265RdTV1SnT6+rqxE033SQAiJycHNU69vwLFixQ7c/8/Hzh6+sr0tLSNLdP8uMJE103+wFC688NN9wg3n33Xad1MjIyhNFoVB3Q7Mxms4iKihK33HKLarqrA967774rAIjZs2c7tdXc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OXIk/u7v/i7qOYIR319aYMQN1777IrQyxMQYP9y8/vrrAICf/exnhm3z//7v/zBx4sSA679vvvlmAMbdN7J69Wq0t7fj0KFDOHnyJD777DNcvHgRiYmJ+Mu//EtDMpC5WKvUZKxVgHH1SuZaBRhXr1irvFir9OEB0zWorq5Gd3c33nnnHdX02tpa5ObmYtq0aSYlM97zzz+PZ555Bk8++SSefvpps+Mo9u7di5iYGIwbNy7q2xo1ahT27t0b8O/uu++Gw+HA3r178cILL0Q9h7+LFy/iD3/4A6ZOnQqHwxH17f3t3/4tAGDnzp2q6Tt27AAAVFZWRj3DYP39/di4cSNuueUWQ/8wzM3NRWNjI7q7u1XT9+3bBwCG3mQdFxeHSZMmobCwEKdPn8Zbb72Fn//854iPjzcsA5mHteoHstYqwLh6JWutAoytV6xVXqxV+hj/3OUhYO7cuaiqqsKKFSvQ2dmJoqIi1NXV4f3338fGjRthtVoNy7Jz50709PSgq6sLAHD48GFs3boVADBv3jzVoxoj7ZVXXsFTTz2FOXPm4K/+6q+wf/9+1XwjBp2HHnoIycnJuOWWW5CdnY329na8/fbbeOutt7Bq1SpkZmZGPYPD4cDMmTMDpm/YsAFWqzXovEi77777UFBQgJtuugkZGRk4fvw4XnnlFZw7dw4bNmyI+vYB4K677sL8+fPx3HPPwePxoLKyEl9++SWeffZZ3HPPPbjtttsMyeHzX//1X+jo6DD0GzsAWLlyJf7mb/4GVVVV+PWvf42MjAzs378fL730EiZOnIi5c+dGPUNDQwPeeecd3HTTTYiLi0N9fT3Wrl2L4uJiPP/881HfPsmBtcpLhloFmF+vZKhVgPn1irXKi7VKJ3OvCLxxdXV1iV/96ldi1KhRIjY2VkyZMkXU1dUZnqOwsFC57tP/X3Nzc1S3feedd2pu26iu9cYbb4jbb79dZGRkCJvNJlJTU8Wdd94p3nzzTUO2H4qRN9K+9NJLYurUqSIlJUVYrVaRmZkpqqurxeeff27I9n16e3vF6tWrRX5+vrDZbKKgoED8v//3/wy7iXWwqqoqkZiYKDo7Ow3f9gcffCDuuusuMWrUKBEfHy9KSkrEY489Jtrb2w3Z/rFjx8Qdd9wh0tLSRGxsrCgqKhJPPvmkqfcnkDlYq+SoVULIW6+MfuiDDPWKtcqLtSp8FiFMen4iERERERGR5HgPExERERERkQYeMBEREREREWngARMREREREZEGHjARERERERFp4AETERERERGRBh4wERERERERaeABExERERERkQYeMBEREREREWngARMREREREZEGHjARERERERFp4AETERERERGRBh4wERERERERafj/svsTKJZu1EIAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def perfect_predict(belief, move):\n",
    "    \"\"\" move the position by `move` spaces, where positive is \n",
    "    to the right, and negative is to the left\n",
    "    \"\"\"\n",
    "    n = len(belief)\n",
    "    result = np.zeros(n)\n",
    "    for i in range(n):\n",
    "        result[i] = belief[(i-move) % n]\n",
    "    return result\n",
    "        \n",
    "belief = np.array([.35, .1, .2, .3, 0, 0, 0, 0, 0, .05])\n",
    "plt.subplot(121)\n",
    "book_plots.bar_plot(belief, title='Before prediction', ylim=(0, .4))\n",
    "\n",
    "belief = perfect_predict(belief, 1)\n",
    "plt.subplot(122)\n",
    "book_plots.bar_plot(belief, title='After prediction', ylim=(0, .4))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that we correctly shifted all values one position to the right, wrapping from the end of the array back to the beginning. \n",
    "\n",
    "The next cell animates this so you can see it in action. Use the slider to move forwards and backwards in time. This simulates Simon walking around and around the hallway. It does not yet incorporate new measurements so the probability distribution does not change shape, only position."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "58c6d27b7eac42e3993004e74c3a2d4c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(IntSlider(value=0, description='time_step', max=19), Output()), _dom_classes=('widget-in…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from ipywidgets import interact, IntSlider\n",
    "\n",
    "belief = np.array([.35, .1, .2, .3, 0, 0, 0, 0, 0, .05])\n",
    "beliefs = []\n",
    "\n",
    "for _ in range(20):\n",
    "    # Simon takes one step to the right\n",
    "    belief = perfect_predict(belief, 1)\n",
    "    beliefs.append(belief)\n",
    "\n",
    "def simulate(time_step):\n",
    "    book_plots.bar_plot(beliefs[time_step], ylim=(0, .4))\n",
    "    \n",
    "interact(simulate, time_step=IntSlider(value=0, max=len(beliefs)-1));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Terminology\n",
    "\n",
    "Let's pause a moment to review terminology. I introduced this terminology in the last chapter, but let's take a second to help solidify your knowledge. \n",
    "\n",
    "The *system* is what we are trying to model or filter. Here the system is our dog. The *state* is its current configuration or value. In this chapter the state is our dog's position. We rarely know the actual state, so we say our filters produce the *estimated state* of the system. In practice this often gets called the state, so be careful to understand the context.\n",
    " \n",
    "One cycle of prediction and updating with a measurement is called the state or system *evolution*, which is short for *time evolution* [7]. Another term is *system propagation*. It refers to how the state of the system changes over time. For filters, time is usually a discrete step, such as 1 second. For our dog tracker the system state is the position of the dog, and the state evolution is the position after a discrete amount of time has passed.\n",
    "\n",
    "We model the system behavior with the *process model*. Here, our process model is that the dog moves one or more positions at each time step. This is not a particularly accurate model of how dogs behave. The error in the model is called the *system error* or *process error*. \n",
    "\n",
    "The prediction is our new *prior*. Time has moved forward and we made a prediction without benefit of knowing the measurements. \n",
    "\n",
    "Let's work an example. The current position of the dog is 17 m. Our epoch is 2 seconds long, and the dog is traveling at 15 m/s. Where do we predict he will be in two seconds? \n",
    "\n",
    "Clearly,\n",
    "\n",
    "$$ \\begin{aligned}\n",
    "\\bar x &= 17 + (15*2) \\\\\n",
    "&= 47\n",
    "\\end{aligned}$$\n",
    "\n",
    "I use bars over variables to indicate that they are priors (predictions). We can write the equation for the process model like this:\n",
    "\n",
    "$$ \\bar x_{k+1} = f_x(\\bullet) + x_k$$\n",
    "\n",
    "$x_k$ is the current position or state. If the dog is at 17 m then $x_k = 17$.\n",
    "\n",
    "$f_x(\\bullet)$ is the state propagation function for x. It describes how much the $x_k$ changes over one time step. For our example it performs the computation $15 \\cdot 2$ so we would define it as \n",
    "\n",
    "$$f_x(v_x, t) = v_k t$$."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Adding Uncertainty to the Prediction\n",
    "\n",
    "`perfect_predict()` assumes perfect measurements, but all sensors have noise. What if the sensor reported that our dog moved one space, but he actually moved two spaces, or zero? This may sound like an insurmountable problem, but let's model it and see what happens.\n",
    "\n",
    "Assume that the sensor's movement measurement is 80% likely to be correct, 10% likely to overshoot one position to the right, and 10% likely to undershoot to the left. That is, if the movement measurement is 4 (meaning 4 spaces to the right), the dog is 80% likely to have moved 4 spaces to the right, 10% to have moved 3 spaces, and 10% to have moved 5 spaces.\n",
    "\n",
    "Each result in the array now needs to incorporate probabilities for 3 different situations. For example, consider the reported movement of 2. If we are 100% certain the dog started from position 3, then there is an 80% chance he is at 5, and a 10% chance for either 4 or 6. Let's try coding that:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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IysrS5dccomampo63ZChsrJSv/jFL5SZmanLLrus288BeIVL44B/Ou200/TII49o/fr1+n//7/9pz549+t3vfqdgMKiHH35Yffv2lSRdeeWVeu+99/Tggw9q7Nixmj17tkaOHKna2lpt375df/vb37R48WI99NBDcTcMHDhQzzzzjObOnauTTz5ZZ555piZPnqy0tDRVV1frrbfeUk1NjY4cOXKsXz4AIEnFOn9117Jly/T666/rl7/8pd59913NmjVL+/fv1+9//3s1Njbql7/8pUaPHn2MXg2QOJwIAf80evRoPfzww/r2t7+thx56SM3NzTrppJN01113afbs2SE/+8ADD2jOnDl66KGH9Morr+jAgQMaMGCARo4cqdtuu02XXnpptzvOPPNMbdiwQT/96U/10ksv6fXXX1dWVpaKior0ta99TRdddNEXfakAgF4knvmrOwYMGKC33npLP/7xj7V69Wr97Gc/U58+ffTlL39Zt912m84+++xj8CqAxPM5juN4HQEAAID4VFVVafTo0br88sv1+OOPe50DJB0+IwQAAAAg5cR9ItTY2Kjbb79dZ599tgYPHiyfzxf2ix8j2bt3r6644goNGjRIubm5OuWUU7R27dp4MwAAiIi5CgDQlbhPhGpqavTrX/9azc3NuuCCC+Jat7m5WWeeeabWrl2r+++/X3/4wx80dOhQnXPOOfrrX/8abwoAAGExVwEAuhL3zRKKi4tVV1cnn8+n/fv365FHHol53UcffVTl5eV68803dcopp0iSZs2apenTp+v222/X+vXr480BAKAT5iqkglGjRomPegPdF/eJ0Bf5luA1a9Zo4sSJ7sQiSRkZGbr00kv13e9+V59++qmGDx8u6ej3pQSDwU7PzbcUA0BiOY7T6f9spaWlKS3N7sdMmasAILV0Z65K6O2zy8vL9dWvfrXT49OmTZMkVVRUhEwuBw8eTGQeACBGeXl5pk+EvgjmKgDoHbqaqxI6i9XU1GjAgAGdHm97rKamJpE5AAB0wlwFAKkh4X/Oi3a5AJcSAAAsYK4CgN4voSdCAwcODPuXtNraWkkK+xc4AAASibkKAFJDQj8jNHXqVH300UedHm97bMqUKe5j4f7i1puvSU8lX3t6W0Ke59V5YxLyPEBvF+5zML35XRHmKgBIPt2ZqxJ6IjR37lxdf/31Wr9+vWbO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H3Lt9UcffSRJmjJlStR1236uvUjrpqWlKS8vL+Qxn8/HX+MAIMEcx+l0nXVaWtwXFCQMcxUApJ7uzFU+J45PvL7wwgs699xztWrVKs2fP999fM6cOdqwYYOqq6sj3pL0V7/6la6//nq9/fbbmjlzpiTJ7/drxowZys/P19tvvx1rBgAAETFXAQBiEdeJkCSdffbZ+sc//qGf/OQnGjdunEpLS7V8+XKtXLlSl1xyiSRpyZIlWrFihSorK1VcXCzp6JfU/du//ZsaGhq0bNkyDRkyRA8++KCee+45vqQOAHBMMVcBALoS97UNq1ev1mWXXaa77rpL55xzjtavX6/S0lJ3YpGkQCCgQCAQ8vZUdna21q5dq1mzZunGG2/U+eefrz179uiFF14wNbE0NTXplltuUVFRkXJycjRjxgytWrUqYc/f2Nio22+/XWeffbYGDx4sn8+n73//+wl7fkl69dVXdeWVV6qkpER5eXkaPny4/uM//kPvvfdewho+/PBDnXfeeRo5cqT69OmjAQMG6JRTTtHKlSsT1tDRI488Ip/Pp/z8/IQ952uvveZeZtPxP4n+y/Tf//53nXvuuerfv7/69Omj8ePH64c//GFCnvuKK66IOA6JHIsPPvhAF1xwgYqKipSbm6uSkhL94Ac/0KFDhxLy/JL0zjvvaPbs2SooKFB+fr5mzZqlN954I2HPnyyYq3oWc9VRzFVHMVcdxVz1L0kzVzkIcdZZZzn9+vVzHnroIefVV191rrrqKkeS8+STTybk+bdv3+4UFhY6p512mvvcd999d0Keu83FF1/szJo1y3nwwQed1157zXn66aedk08+2cnIyHDWrl2bkIZ169Y51157rfPEE084r776qvPcc885CxYscCQ5P/zhDxPS0N6uXbucwsJCp6ioyMnLy0vY865bt86R5Nx7773OW2+9FfKfxsbGhHU8+eSTTlpamrNgwQLnj3/8o/Pqq686y5cvd+65556EPP/WrVs7vf633nrLGTRokDN8+HDH7/f3eENFRYWTk5PjTJ8+3fnd737nrF271rn77rud9PR055vf/GaPP7/jOM4777zjZGdnO1/96ledNWvWOKtXr3ZOPvlkJzs723nzzTcT0gAbmKuYq8JhrmKuYq6KDydC7fz5z392JDlPPfVUyONnnXWWU1RUlJAdOBgMOsFg0HEcx9m3b58nk8vnn3/e6bHGxkZn6NChzplnnpnQlo5mzpzpHH/88Ql/3m984xvO+eef71x++eWeTC5PP/10wp6zo127djl5eXnO0qVLPWsI57XXXnMkOXfeeWdCnu+OO+5wJDlbt24Nefyaa65xJDm1tbU93jB79mxn6NChzsGDB93HGhoanEGDBjmnnnpqjz8/bGCuOoq5qjPmKuYq5qr42L3tjwfWrFmj/Px8zZs3L+TxxYsXa/fu3Vq/fn2PN1i429CQIUM6PZafn68TTjhBO3fu9KDoXwYNGtTp2+J72sqVK/XXv/5VDz74YEKf14pHHnlEBw8e1Le//W2vU0I8+uij8vl8uvLKKxPyfJmZmZKkwsLCkMf79euntLQ0ZWVl9XjDG2+8oTPOOEO5ubnuYwUFBTrttNP05ptvas+ePT3eAO8xVx3FXBWKuYq5SmKuihcnQu2Ul5dr0qRJnQ5e06ZNc5enqvr6er3//vuaPHlyQp83GAzK7/dr3759evDBB/XSSy8l9CC3d+9e3XLLLVq2bJlGjBiRsOft6IYbblBGRob69u2r2bNn6+9//3vCnvtvf/ubBgwYoE2bNmnGjBnKyMjQkCFDdN1116mhoSFhHe3V19frmWee0ZlnnqnRo0cn5Dkvv/xy9evXT0uXLtW2bdvU2NioP/3pT3r44Yd1ww03dLqFck9oaWlRdnZ2p8fbHgt322f0PsxVkTFXMVcxVzFXxYMToXZqamrCflle22PhvmQvVdxwww06ePCg7rjjjoQ+7/XXX6/MzEwNGTJEt956q37xi1/o2muvTejzT5w4UUuXLk3Yc7ZXWFiom2++WQ8//LDWrVun+++/Xzt37tQZZ5yhl156KSENn376qQ4dOqR58+Zp/vz5euWVV3Tbbbfpt7/9rc4999xO9+xPhNLSUh0+/P/bu7uQJtswDuD/dxtzslhZs4aURs0OhonQXIs+7ETLSkg6iDoJsmKe9IHEKAbNPpgVg6KjDhQjYUkTOqgMglYEKRWRNAsJsiQCYzTQ6VswvN4D3+11TeP1YPcj7P+D5+T24LrA8fy93H0/z99oampSVnP16tXo6+tDNBrF2rVrYbFY0NDQgEOHDuH69etKenA4HOjv78fU1FR6LZlMpr8ByOd7VD5hVs2NWcWsYlYxq+ZF6715C0l5ebns3Lkza/3bt28CQAKBgNJ+tNp3/TufzycA5MaNG8prf/nyRV69eiUPHjwQj8cjOp1Orl69qqR2OBwWo9Eog4OD6TXV+65nE4/HZeXKlVJZWamkXnl5+ayf/2vXrgkAefz4sZI+ZnI6nbJs2TL5+fOnsprDw8Nit9tl8+bNEg6H5dmzZ3LlyhWxWCxy+PBhJT20t7cLAGlubpavX7/KyMiINDU1iV6vFwBy584dJX2QtphVs2NWMauYVcyq+eIgNIPb7Zbq6uqs9Wg0KgDk5s2bSvtZCOHi9/sFgFy6dEmzHmbyeDxiMBjk+/fvOa2TOnDb0tIi8Xg8fR04cEDMZrPE43FJJBI57eFPPB6PAJDJycmc13K73QJA3rx5k7E+NDQkAOTy5cs572GmgYEBASAnTpxQWnf//v2yfPnyrN97R0eHAJCnT58q6aOtrU0WLVokAASAbNq0SbxerwCQ58+fK+mBtMWsysasYlYxq6Yxq+aHW+NmWL9+PT58+IBkMpmxntrLWFFRoUVbmmltbYXf74ff78fZs2e1bgcA4HK5kEwm8enTp5zWicViGB0dRTAYRFFRUfoKhUKYmJhAUVFRxvtIVJN/v+JXcVg5de5grh50OrW3kfb2dgDAkSNHlNZ9+/YtHA5H1v7q6upqAOrOZXi9XsRiMbx79w6fP3/GixcvEI/HYTabsWHDBiU9kLaYVZmYVcwqgFmVwqyaHw5CMzQ2NiKRSKCnpydj/datWygpKcHGjRs16ky9CxcuwO/3w+fz4dy5c1q3kxaJRKDT6bBmzZqc1rHZbIhEIlnXjh07YDKZEIlEcPHixZz2MJd4PI779++jqqoKJpMp5/X27dsHAOjt7c1Yf/jwIQDA7XbnvIeUX79+oaurCy6XS/kfeyUlJRgcHEQikchY7+vrAwClB5QLCgpQUVGBsrIyjIyMoLu7G0ePHkVhYaGyHkg7zKr/MKuYVSnMqmnMqvlR+2zHBa6+vh61tbVobm7G2NgY7HY7QqEQHj16hK6uLuj1eiV99Pb2YmJiAuPj4wCA9+/fIxwOAwB27dqV8TjCXAgGg+m3se/evTvrTcgqbibHjh2DxWKBy+XCihUrEIvFcPfuXXR3d+P06dMoLi7OaX2TyYTt27dnrXd2dkKv18/6s1w4ePAgSktL4XQ6YbVa8fHjRwSDQYyOjqKzs1NJD3V1dWhoaMD58+cxNTUFt9uN169fo7W1FXv27MGWLVuU9AEA9+7dw48fP5T/hw0ATp48ib1796K2thanTp2C1WpFf38/AoEAHA4H6uvrc95DNBpFT08PnE4nCgoKMDAwgLa2NqVvTiftMaumMauYVTMxq6Yxq+ZJ2515C8/4+LgcP35cbDabGI1GqayslFAopLSHsrKy9J7K36/h4eGc16+pqZmzvqqPTEdHh2zdulWsVqsYDAZZsmSJ1NTUyO3bt5XUn4vqA6iBQECqqqpk8eLFotfrpbi4WBobG+Xly5fKehARmZycFK/XK6tWrRKDwSClpaVy5swZpQdARaZfGGk2m2VsbExp3ZQnT55IXV2d2Gw2KSwslHXr1klLS4vEYjEl9YeGhmTbtm2ydOlSMRqNYrfbxefzaXoGgLTBrGJW/QmzilnFrPp//hLR4HmCREREREREGuIZISIiIiIiyjschIiIiIiIKO9wECIiIiIiorzDQYiIiIiIiPIOByEiIiIiIso7HISIiIiIiCjvcBAiIiIiIqK8w0GIiIiIiIjyDgchIiIiIiLKOxyEiIiIiIgo73AQIiIiIiKivMNBiIiIiIiI8s4/aLov8LDFNnMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def predict_move(belief, move, p_under, p_correct, p_over):\n",
    "    n = len(belief)\n",
    "    prior = np.zeros(n)\n",
    "    for i in range(n):\n",
    "        prior[i] = (\n",
    "            belief[(i-move) % n]   * p_correct +\n",
    "            belief[(i-move-1) % n] * p_over +\n",
    "            belief[(i-move+1) % n] * p_under)      \n",
    "    return prior\n",
    "\n",
    "belief = [0., 0., 0., 1., 0., 0., 0., 0., 0., 0.]\n",
    "prior = predict_move(belief, 2, .1, .8, .1)\n",
    "book_plots.plot_belief_vs_prior(belief, prior)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It appears to work correctly. Now what happens when our belief is not 100% certain?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.  , 0.  , 0.  , 0.04, 0.38, 0.52, 0.06, 0.  , 0.  , 0.  ])"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "belief = [0, 0, .4, .6, 0, 0, 0, 0, 0, 0]\n",
    "prior = predict_move(belief, 2, .1, .8, .1)\n",
    "book_plots.plot_belief_vs_prior(belief, prior)\n",
    "prior"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here the results are more complicated, but you should still be able to work it out in your head. The 0.04 is due to the possibility that the 0.4 belief undershot by 1. The 0.38 is due to the following: the 80% chance that we moved 2 positions (0.4 $\\times$ 0.8) and the 10% chance that we undershot (0.6 $\\times$ 0.1). Overshooting plays no role here because if we overshot both 0.4 and 0.6 would be past this position. **I strongly suggest working some examples until all of this is very clear, as so much of what follows depends on understanding this step.**\n",
    "\n",
    "If you look at the probabilities after performing the update you might be dismayed. In the example above we started with probabilities of 0.4 and 0.6 in two positions; after performing the update the probabilities are not only lowered, but they are strewn out across the map.\n",
    "\n",
    "This is not a coincidence, or the result of a carefully chosen example - it is always true of the prediction. If the sensor is noisy we lose some information on every prediction. Suppose we were to perform the prediction an infinite number of times - what would the result be? If we lose information on every step, we must eventually end up with no information at all, and our probabilities will be equally distributed across the `belief` array. Let's try this with 100 iterations. The plot is animated; use the slider to change the step number."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Final Belief: [0.104 0.103 0.101 0.099 0.097 0.096 0.097 0.099 0.101 0.103]\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "52514fc434b046ab8f5e6d03a6fc5eb2",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(IntSlider(value=1, description='step'), Output()), _dom_classes=('widget-interact',))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "belief = np.array([1.0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n",
    "beliefs = []\n",
    "    \n",
    "for i in range(100):\n",
    "    belief = predict_move(belief, 1, .1, .8, .1)\n",
    "    beliefs.append(belief)\n",
    "\n",
    "print('Final Belief:', belief)\n",
    "\n",
    "# make interactive plot\n",
    "def show_prior(step):\n",
    "    book_plots.bar_plot(beliefs[step-1])\n",
    "    plt.title('Step {}'.format(step))\n",
    "\n",
    "interact(show_prior, step=IntSlider(value=1, max=len(beliefs)));"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Final Belief: [0.104 0.103 0.101 0.099 0.097 0.096 0.097 0.099 0.101 0.103]\n"
     ]
    }
   ],
   "source": [
    "print('Final Belief:', belief)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "After 100 iterations we have lost almost all information, even though we were 100% sure that we started in position 0. Feel free to play with the numbers to see the effect of differing number of updates. For example, after 100 updates a small amount of information is left, after 50 a lot is left, but by 200 iterations essentially all information is lost."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And, if you are viewing this online here is an animation of that output.\n",
    "<img src=\"animations/02_no_info.gif\">\n",
    "\n",
    "I will not generate these standalone animations through the rest of the book. Please see the preface for instructions to run this book on the web, for free, or install IPython on your computer. This will allow you to run all of the cells and see the animations. It's very important that you practice with this code, not just read passively."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Generalizing with Convolution\n",
    "\n",
    "We made the assumption that the movement error is at most one position. But it is possible for the error to be two, three, or more positions. As programmers we always want to generalize our code so that it works for all cases. \n",
    "\n",
    "This is easily solved with [*convolution*](https://en.wikipedia.org/wiki/Convolution). Convolution modifies one function with another function. In our case we are modifying a probability distribution with the error function of the sensor. The implementation of `predict_move()` is a convolution, though we did not call it that. Formally, convolution is defined as\n",
    "\n",
    "$$ (f \\ast g) (t) = \\int_0^t \\!f(\\tau) \\, g(t-\\tau) \\, \\mathrm{d}\\tau$$\n",
    "\n",
    "where $f\\ast g$ is the notation for convolving f by g. It does not mean multiply.\n",
    "\n",
    "Integrals are for continuous functions, but we are using discrete functions. We replace the integral with a summation, and the parenthesis with array brackets.\n",
    "\n",
    "$$ (f \\ast g) [t] = \\sum\\limits_{\\tau=0}^t \\!f[\\tau] \\, g[t-\\tau]$$\n",
    "\n",
    "Comparison shows that `predict_move()` is computing this equation - it computes the sum of a series of multiplications.\n",
    "\n",
    "[Khan Academy](https://www.khanacademy.org/math/differential-equations/laplace-transform/convolution-integral/v/introduction-to-the-convolution) [4] has a good introduction to convolution, and Wikipedia has some excellent animations of convolutions [5]. But the general idea is already clear. You slide an array called the *kernel* across another array, multiplying the neighbors of the current cell with the values of the second array. In our example above we used 0.8 for the probability of moving to the correct location, 0.1 for undershooting, and 0.1 for overshooting. We make a kernel of this with the array `[0.1, 0.8, 0.1]`. All we need to do is write a loop that goes over each element of our array, multiplying by the kernel, and summing the results. To emphasize that the belief is a probability distribution I have named it `pdf`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "def predict_move_convolution(pdf, offset, kernel):\n",
    "    N = len(pdf)\n",
    "    kN = len(kernel)\n",
    "    width = int((kN - 1) / 2)\n",
    "\n",
    "    prior = np.zeros(N)\n",
    "    for i in range(N):\n",
    "        for k in range (kN):\n",
    "            index = (i + (width-k) - offset) % N\n",
    "            prior[i] += pdf[index] * kernel[k]\n",
    "    return prior"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This illustrates the algorithm, but it runs very slow. SciPy provides a convolution routine `convolve()` in the `ndimage.filters` module. We  need to shift the pdf by `offset` before convolution; `np.roll()` does that. The move and predict algorithm can be implemented with one line:\n",
    "\n",
    "```python\n",
    "convolve(np.roll(pdf, offset), kernel, mode='wrap')\n",
    "```\n",
    "\n",
    "FilterPy implements this with `discrete_bayes`' `predict()` function."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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cK9Yx6++SE9P1913363W1tYeCzJUV1frP/7jP+T1enXPPff0+TOAROHWOOA9N954o374wx9qx44d+tu//VudOHFCL774ogKBgJ555hllZ2dLku677z699dZb+t73vqcpU6boQx/6kCZOnKiGhgbV1NTo97//vVatWqWnn3467gx5eXn66U9/qiVLlui6667TrbfeqtmzZyslJUW1tbX64x//qPr6el28eLG/Dx8AkKRiHb/6av369Xr99df15JNPaufOnVqwYIHOnDmjn/zkJzp79qyefPJJFRcX99PRAIOHiRDwnuLiYj3zzDP653/+Zz399NNqa2vT1VdfrXXr1ulDH/pQyHufeuopLVq0SE8//bRee+01NTU1afTo0Zo4caIeeughfeITn+hzjltvvVW7du3St771Lf3yl7/U66+/rvT0dBUWFuqWW27RnXfeebmHCgAYQuIZv/pi9OjR+uMf/6hvfvOb2rp1q7797W9r2LBhev/736+HHnpICxcu7IejAAafJxgMBhMdAgAAAPE5fPiwiouL9clPflIbNmxIdBwg6fCMEAAAAADXiXsi1NraqjVr1qiwsFCZmZmaP3++tmzZEvP+P/vZz3TTTTcpOztbI0aM0OzZs/WDH/wg3hgAAETEWAUA6E3czwgtXbpUO3fu1Pr16zV9+nRt3rxZK1asUCAQ0MqVK6Puu379eq1du1af/vSn9a//+q/yer2qqqpSe3t7nw8AAIDuGKsAAL2J6xmh7du3a/Hixc6A0mnhwoWqrKxUbW2tUlNTw+771ltv6f3vf7+++c1v6uGHH7785AAAhMFYBQCIRVxXhLZt26asrCwtW7Ys5PVVq1Zp5cqV2rFjh2644Yaw+z755JPKyMjQ5z73uZg+KxAIKBAIhLzm8Xj4lWIAGGTBYFDdvzNLSUlRSorNx0wZqwDAffoyVsU1EaqoqNDMmTOVlha627x585ztkQaX3//+95o5c6ZeeuklffWrX9XBgwdVUFCgT3ziE3rssceUnp4e8v5AIKBz587FEw8AMEhGjBhhdiLEWAUAkHofq+KaCNXX12vy5Mk9Xh89erSzPZLjx4/r9OnT+vznP6+vfvWrmjVrln79619r/fr1Onr0qF544YV4ogAAEBZjFQAgFnEvlhDtcn+0bYFAQGfPnlVZWZnuuusuSdKCBQt07tw5ffe739Wj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\n",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from filterpy.discrete_bayes import predict\n",
    "\n",
    "belief = [.05, .05, .05, .05, .55, .05, .05, .05, .05, .05]\n",
    "prior = predict(belief, offset=1, kernel=[.1, .8, .1])\n",
    "book_plots.plot_belief_vs_prior(belief, prior, ylim=(0,0.6))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "All of the elements are unchanged except the middle ones. The values in position 4 and 6 should be \n",
    "$$(0.1 \\times 0.05)+ (0.8 \\times 0.05) + (0.1 \\times 0.55) = 0.1$$\n",
    "\n",
    "Position 5 should be $$(0.1 \\times 0.05) + (0.8 \\times 0.55)+ (0.1 \\times 0.05) = 0.45$$\n",
    "\n",
    "Let's ensure that it shifts the positions correctly for movements greater than one and for asymmetric kernels."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0IAAAGDCAYAAAAGdaBMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3X10VVeB/vHnJrlJgJAXQoDcUkJ4DSQQ2rH2RX9taYWW4qhQWRRql6XYanVUxjXtzMhIbesLneVSO9Nqa9WSkRLqWFiOI622arWDFrG2gQTCSwgESGhCXgkhL/fl90fMaW5yz829geTuy/l+1nIV77ln3+fss7N3ds45+7oCgUBAAAAAAOAgCbEOAAAAAACjjYkQAAAAAMdhIgQAAADAcZgIAQAAAHAcJkIAAAAAHIeJEAAAAADHYSIEAAAAwHGYCAEAAABwHCZCAAAAAByHiRAc7/jx43K5XLr33ntH7DNcLpduvvnmoNe++tWvyuVy6fXXX7/o8o8ePao777xTubm5SkhIUGZm5kWXCQBwnlDjFXC5Sop1AAAXx+/3a8WKFTp8+LDuueceTZ06VampqbGOBQAAYDQmQkCM/MM//IPuuusuTZs27aLKOXbsmMrLy3X//ffrBz/4wSVKBwBwooMHD2rs2LGxjgGMCiZCQIxMnDhREydOvOhyamtrJUkej+eiywIAOFtBQUGsIwCjhmeEgH4qKyv1sY99TBMmTNC4ceP0wQ9+UL/+9a9Dvre0tFSLFy9WVlaWUlNTNW/ePH3ta19TV1dXRJ8V7hmhyspK3XvvvbryyiuVkpKiyZMna+3atTp06FDQ+1wul2666SZJ0qOPPiqXyyWXy6WvfvWrUR03ACD+9H/GNZLxa8uWLXK5XNqyZYt++ctf6sYbb1R6erpcLpf1HrtnhFpaWvQv//IvmjNnjlJTU5WVlaWlS5fq1VdfHfTe119/3RqL3nzzTS1btkxZWVlyuVw6fvz4pa4GYNiYCAF/U11dreuvv16NjY369Kc/rVWrVumtt97SsmXL9OKLLwa9d/369Vq7dq2qqqp055136nOf+5wmTJigr3zlK7r99tvV09Mz7ByvvPKKrr76am3btk3XXHONvvjFL+rWW2/Vjh079P73v19//etfrfc+8sgj+uQnPylJuummm/TII4/okUce4UFXAHCQaMYvSfrv//5vfeQjH1FGRoY+85nP6OMf/3jY8pubm3X99dfriSeeUFZWljZs2KA777xTb775pm677TZ973vfC7nfH//4R914443q7u7W+vXrdc899yg5OfmSHDNwSQQAh6uurg5ICkgK/NM//VPQtr179waSkpICmZmZgdbW1kAgEAg8//zzAUmBj3/844ELFy4Evf+RRx4JSAp85zvfCXpdUuCmm24K+d7f/e531mtNTU2BzMzMwMSJEwMHDx4Men95eXlg3LhxgUWLFgW9/rvf/S4gKfDII48M4+gBAPFquOOXy+UKvPzyyyHLDDVe3X///QFJgQcffDDo9crKysD48eMDbrc7cOzYMev1vnFJUuCZZ565BEcKjAyuCAF/k5GRoU2bNgW99r73vU933323WlpatHPnTknSk08+Kbfbreeee27Q6mxf+cpXlJ2drRdeeGFYGf7rv/5LLS0tevTRRwfdp11YWKj7779f77zzjioqKoZVPgDg8hPp+NXnIx/5iG6//faIyu7u7tbWrVuVlpamr3/960Hb5s6dq89//vPq6enRT37yk0H7FhcX69Of/nSURwOMHhZLAP7m6quv1vjx4we9fvPNN6ukpERvv/22Vq1apbKyMk2cOFHf/e53Q5aTkpKiysrKYWX405/+JEl65513Qj7nc/jwYUm9zxAVFhYO6zMAAJeXSMavvtuoJenaa6+NuOxDhw7pwoUL+uAHP6isrKxB2z/0oQ/pG9/4RtBt28P5HCAWmAgBfzN58uSQr0+ZMkWS1NraqubmZgUCATU0NOjRRx+95BkaGxslSc8991zY97W3t1/yzwYAxKdIxq9Qr0eib1+7fXJzc0N+RrSfA8QCEyHgb959992Qr585c0ZS760HGRkZkqSrrroq5F+/LlZf+WVlZVq4cOElLx8AcPmJZPzqr/8qcUPp27evrIHq6upCfka0nwPEAs8IAX/z17/+VefOnRv0et/y1ldddZXS0tJUWFioiooKNTU1XfIM1113nSTpjTfeuORlAwAuT5GMX8M1d+5cjR07Vu+8846am5sHbf/d734nqff2PCDeMBEC/qa1tVWPPfZY0Gt/+ctf9MILLygjI0MrVqyQJH3pS19Sd3e37rvvPrW0tAwqp7m5edhXi9atW6fMzEw9+uij+vOf/zxou9/vD/m9QwAA54p0/BqO5ORk3X333Wpvbx+0IENVVZX+4z/+Q263W/fcc8+wPwOIFW6NA/7mxhtv1A9/+EPt2bNHH/jAB1RXV6cXX3xRfr9fzz77rNLT0yVJ9913n9566y1973vf08yZM3Xbbbdp2rRpampqUnV1tf7whz9o3bp1euaZZ6LOkJ2drZ/97GdasWKFrrvuOt16660qLCxUQkKCampq9Kc//UmNjY3q7Oy81IcPAIhTkY5fw7V582a98cYbeuqpp7R3714tXrxYZ8+e1U9/+lOdO3dOTz31lPLz8y/R0QCjh4kQ8Df5+fl69tln9c///M965pln1NXVpauvvlqbNm3SbbfdFvTep59+WsuWLdMzzzyj1157TS0tLZowYYKmTZumhx56SJ/4xCeGnePWW2/Vvn379K1vfUu/+tWv9MYbbyg5OVkej0e33HKL7rzzzos9VADAZSSa8Ws4JkyYoD/96U/65je/qR07dujb3/62xowZo/e///166KGHtHTp0ktwFMDocwUCgUCsQwAAACA6x48fV35+vj75yU9qy5YtsY4DxB2eEQIAAADgOFFPhNrb27VhwwZ5PB6lpqZq0aJF2r59e8T7//znP9dNN92k9PR0jRs3ToWFhfrBD34QbQwAAGwxVgEAhhL1M0IrV67U3r17tXnzZs2ZM0fbtm3TmjVr5Pf7tXbt2rD7bt68WRs3btRnPvMZ/eu//qvcbrcqKyvV3d097AMAAGAgxioAwFCiekZo165dWr58uTWg9Fm6dKkqKipUU1OjxMTEkPu+9dZbev/7369vfvObevjhhy8+OQAAITBWAQAiEdUVoZ07dyotLU2rVq0Ken3dunVau3at9uzZoxtuuCHkvk899ZRSUlL0+c9/PqLP8vv98vv9Qa+5XC6+pRgARlkgENDAv5klJCQoIcHMx0wZqwDAeYYzVkU1ESovL9e8efOUlBS828KFC63tdoPLH/7wB82bN08vvfSSHn/8cR09elS5ubn6xCc+occee0zJyclB7/f7/Tp//nw08QAAo2TcuHHGToQYqwAA0tBjVVQTocbGRs2YMWPQ6xMmTLC22zl9+rQaGhr0hS98QY8//rjmz5+v3/zmN9q8ebNOnjypF154IZooAACExFgFAIhE1IslhLvcH26b3+/XuXPnVFpaqrvuukuStHjxYp0/f17f/e539eijj2rWrFnR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\n",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "prior = predict(belief, offset=3, kernel=[.05, .05, .6, .2, .1])\n",
    "book_plots.plot_belief_vs_prior(belief, prior, ylim=(0,0.6))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The position was correctly shifted by 3 positions and we give more weight to the likelihood of an overshoot vs an undershoot, so this looks correct.\n",
    "\n",
    "Make sure you understand what we are doing. We are making a prediction of where the dog is moving, and convolving the probabilities to get the prior.\n",
    "\n",
    "If we weren't using probabilities we would use this equation that I gave earlier:\n",
    "\n",
    "$$ \\bar x_{k+1} = x_k + f_{\\mathbf x}(\\bullet)$$\n",
    "\n",
    "The prior, our prediction of where the dog will be, is the amount the dog moved plus his current position. The dog was at 10, he moved 5 meters, so he is now at 15 m. It couldn't be simpler. But we are using probabilities to model this, so our equation is:\n",
    "\n",
    "$$ \\bar{ \\mathbf x}_{k+1} = \\mathbf x_k \\ast f_{\\mathbf x}(\\bullet)$$\n",
    "\n",
    "We are *convolving* the current probabilistic position estimate with a probabilistic estimate of how much we think the dog moved. It's the same concept, but the math is slightly different. $\\mathbf x$ is bold to denote that it is an array of numbers. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Integrating Measurements and Movement Updates\n",
    "\n",
    "The problem of losing information during a prediction may make it seem as if our system would quickly devolve into having no knowledge. However, each prediction is followed by an update where we incorporate the measurement into the estimate. The update improves our knowledge. The output of the update step is fed into the next prediction. The prediction degrades our certainty. That is passed into another update, where certainty is again increased.\n",
    "\n",
    "Let's think about this intuitively. Consider a simple case - you are tracking a dog while he sits still. During each prediction you predict he doesn't move. Your filter quickly *converges* on an accurate estimate of his position. Then the microwave in the kitchen turns on, and he goes streaking off. You don't know this, so at the next prediction you predict he is in the same spot. But the measurements tell a different story. As you incorporate the measurements your belief will be smeared along the hallway, leading towards the kitchen. On every epoch (cycle) your belief that he is sitting still will get smaller, and your belief that he is inbound towards the kitchen at a startling rate of speed increases.\n",
    "\n",
    "That is what intuition tells us. What does the math tell us?\n",
    "\n",
    "We have already programmed the update and predict steps. All we need to do is feed the result of one into the other, and we will have implemented a dog tracker!!! Let's see how it performs. We will input measurements as if the dog started at position 0 and moved right one position each epoch. As in a real world application, we will start with no knowledge of his position by assigning equal probability to all positions. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0IAAAGDCAYAAAAGdaBMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xl8lNWh//HvZCcJWQgECEvCHmQJem1VRBQtKLhVXvXFYr0uuBS9vaWLtveHRa9ee7G3ty2t60u9QEWCUqGbiHWjtSiIVYFEQAgJISSQkISEEEgyM8/vDzoPmcySmUgyh87n/XrxQp8zz5nvc+aZczjzPHPGYVmWJQAAAACIIjGRDgAAAAAAPY2JEAAAAICow0QIAAAAQNRhIgQAAAAg6jARAgAAABB1mAgBAAAAiDpMhAAAAABEHSZCAAAAAKIOEyEAAAAAUYeJENBDHA6HrrjiikjHAACgx5SVlcnhcOj222+PdBTABxMhAACAKHHFFVfI4XBEOgZghLhIBwCixa5du5ScnBzpGAAA9JhBgwZp165dSk9Pj3QUwAcTIaCH5OfnRzoCAAA9Kj4+nvEPxuLWOMCP9vc07969W1//+tfVp08fpaSkaMqUKfrzn//s9fgVK1bI4XBoxYoVev311zV16lSlpaV53X4Q6DtCx44d049+9CONHj1aSUlJyszM1IwZM/TWW2/5PHbTpk1yOBx65JFHtGXLFs2cOVOZmZlyOBwqKys7280AADgLwh1TJOnUqVP67//+b02YMEHJyclKS0vTZZddpjVr1vh9jvXr12vatGkaMGCAEhMTNWDAAE2ZMkVPPfWUV4a//OUvkk6PSZ4/HcemiooK/du//ZuGDx+uxMREZWVl6YYbbtC2bdt8nveRRx6Rw+HQpk2b9Jvf/EZf+cpXlJKSory8PJ9j76iyslL33Xef8vLylJCQoH79+ummm27y+zyhjLNAuLgiBARRWlqqSy65ROPHj9e9996rqqoqvfLKK5o5c6ZWr16tOXPmeD1+7dq12rhxo2bNmqVvfetbKi0tDVp/fX29Jk+erN27d+urX/2qZs+eraNHj+rVV1/V1VdfrSeffFL33Xefz34ffPCBfvKTn+iyyy7TggULVF1drYSEhLN67ACAsyvUMaW1tVUzZszQ+++/r/POO0/333+/mpubtXbtWs2bN0+ffvqpnnjiCbveZ555Rvfdd58GDBigG264QX379lV1dbV27NihFStW6P7771dGRoYefvhhrVixQgcOHNDDDz9s7++ZtEjSJ598ohkzZqiurk5XX321PS797ne/05QpU7R+/XrNmjXL59h+9rOf6e2339b111+vK6+8UseOHQvaFvv379eUKVNUVVWlq666SvPmzdPBgwe1du1avf7661q7dq1uvPFGn/3CHWeBoCwAPkpLSy1JliTrBz/4gVfZtm3brLi4OCsjI8NqaGiwLMuyli9fbkmyHA6H9cYbb/itU5J1+eWXe227++67LUnWwoULvbbv3r3b6t27txUfH2/t37/f3v7ee+/ZuZ599tmzcKQAgO4W7pjy+OOPW5Ks6667zmpra7Mfe/jwYWvIkCGWJOv999+3t59//vlWQkKCdeTIEZ/nrqmp8fr/yy+/3Ar0z7+2tjZrxIgRVlJSklf9lmVZhw4dsnJycqz+/ftbJ0+etLc//PDDliQrOTnZ+uSTTwIe+2233ea1ffr06ZYka+nSpV7b33//fSsmJsbKzMy0Ghsb7e2hjLNAuLg1DggiPT1dS5Ys8dp24YUX6pZbbtGxY8e0fv16r7IbbrhB11xzTUh1t7a2atWqVUpNTdXjjz/uVTZmzBh9+9vfVltbm1566SWffQsKCnTvvfeGeTQAgEgKdUz5v//7PzkcDv3v//6v4uLO3LzTv39//fjHP7Yf4+FwOBQXF6f4+Hif5+zbt2/I+V5//XWVlJTo29/+tqZMmeJVlpOTowcffFBHjhzRO++847Pv3XffrfPPPz+k56moqNBbb72l3Nxcff/73/cqmzJliubOnav6+nqfMVYKb5wFOsNECAjiggsuUO/evX22e+6n/vTTT722X3TRRSHXvWfPHp08eVKTJk1SZmamT/nXvvY1SadvU+gonOcBAJghlDHl+PHjKikp0aBBgzR69Gifx/obG2655RY1Nzdr3Lhx+t73vqff/e53qqmpCTvfhx9+KOn093oeeeQRnz8fffSRJGn37t0++4YzLnnGzssuu8xroufB+IeewneEgCD69+/vd/uAAQMkSQ0NDX63h8Kzb6B9Bg4c6Pc5wn0eAIAZQhlTujI2fO9731Pfvn319NNPa9myZfrFL34hh8OhadOm6X/+5390wQUXhJSvtrZW0unv4QTT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N1fS6R+p+5d/+Rc1NjZq6dKlys7O1tNPP60//vGP/EgdAOCsYqwCAHQm7Hsb1q1bp1tvvVVLlizRNddco61bt6qwsNAeWCTJ5XLJ5XJ5XZ5KTEzUO++8o2nTpunb3/62rr/+elVVVemNN94wamBpamrSokWLlJOTo6SkJE2aNElr1qzpsec/fvy4HnzwQc2YMUP9+vWTw+HQI4880mPPL0nvvvuu7rzzTuXn5yslJUWDBg3SjTfeqL///e89luGzzz7Ttddeq6FDh6pXr17q06ePLrnkEq1atarHMnT0wgsvyOFwKDU1tceec9OmTfZtNh3/9PQn03/72980a9YsZWZmqlevXho1apQee+yxHnnu22+/PWA79GRbfPrpp/r617+unJwcJScnKz8/X48++qiam5t75Pkl6aOPPtLVV1+t3r17KzU1VdOmTdPmzZt77PnPFYxV3Yux6jTGqtMYq05jrDrjnBmrLHiZPn26lZGRYT377LPWu+++a911112WJOvll1/ukecvLS210tPTralTp9rP/fDDD/fIc3t84xvfsKZNm2Y9/fTT1qZNm6y1a9daF198sRUXF2e98847PZLhvffes+69917rpZdest59913rj3/8ozV37lxLkvXYY4/1SIb2KioqrPT0dCsnJ8dKSUnpsed97733LEnWT37yE+vDDz/0+nP8+PEey/Hyyy9bMTEx1ty5c60//OEP1rvvvms9//zz1n/+53/2yPPv27fP5/g//PBDq2/fvtagQYMsp9PZ7RmKi4utpKQkq6CgwHrllVesd955x3r44Yet2NhY64Ybbuj257csy/roo4+sxMRE67LLLrPWr19vrVu3zrr44outxMRE64MPPuiRDDADYxVjlT+MVYxVjFXhYSLUzuuvv25JslavXu21ffr06VZOTk6PnMBut9tyu92WZVlWTU1NRAaXI0eO+Gw7fvy41b9/f+uqq67q0SwdXXTRRdaQIUN6/Hmvu+466/rrr7duu+22iAwua9eu7bHn7KiiosJKSUmxFi5cGLEM/mzatMmSZD300EM98nyLFy+2JFn79u3z2n7PPfdYkqy6urpuz3D11Vdb/fv3t06cOGFva2xstPr27WtNnjy5258fZmCsOo2xyhdjFWMVY1V4zF32JwLWr1+v1NRU3XzzzV7b77jjDlVWVmrr1q3dnsGE1Yay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\n",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from filterpy.discrete_bayes import update\n",
    "\n",
    "hallway = np.array([1, 1, 0, 0, 0, 0, 0, 0, 1, 0])\n",
    "prior = np.array([.1] * 10)\n",
    "likelihood = lh_hallway(hallway, z=1, z_prob=.75)\n",
    "posterior = update(likelihood, prior)\n",
    "book_plots.plot_prior_vs_posterior(prior, posterior, ylim=(0,.5))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "After the first update we have assigned a high probability to each door position, and a low probability to each wall position. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0IAAAGDCAYAAAAGdaBMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xl4VPWh//HPZCeELAQCBCRhC0GWoFerIqJoQcGt8tSHxfa64Ibe3tJF2/vDolevLba9bW1dH/UCFQmKQjcRiwvWoiBWBRIBISSEkEBCEhJCyDIz5/cHT46ZZGYyE2DmG+b9eh6f2jmZM+85c3K+fjNnzjgsy7IEAAAAABEkKtwBAAAAABBqTIQAAAAARBwmQgAAAAAiDhMhAAAAABGHiRAAAACAiMNECAAAAEDEYSIEAAAAIOIwEQIAAAAQcZgIAQAAAIg4TISAHqqkpEQOh0O33XZbuFMAAGcJh8OhK664ItwZQEgwEQJOkyuuuEIOhyPcGQAAAAhATLgDAHTP4MGDtXPnTqWkpIQ7BQBwlti5c6cSExPDnQGEBBMhoIeKjY1Vbm5uuDMAAGcRxhVEEk6NQ4/W/nMyu3bt0re+9S317dtXvXv31uTJk/X3v/+9032ampr0i1/8QuPHj1diYqKSk5N12WWXadWqVV4fY+3atZo6daoGDhyo+Ph4DRw4UJMnT9bTTz/t0fDBBx9IOnl+dds/Hc+zLisr03/8x39o+PDhio+PV3p6um644QZt3bq10+M+8sgjcjgc2rhxo/74xz/qwgsvVO/evZWdnd3puXdUXl6u++67T9nZ2YqLi1P//v110003eX2cZcuWyeFwaNmyZXrzzTc1ZcoUJScnc5ofABgu2DEwkOO9r88IHT16VD/96U+Vk5OjhIQEpaWlafr06dqwYUOnn924caMcDoceeeQRbd68WTNmzFBaWpocDodKSkpO92YAuo13hHBWKC4u1iWXXKJx48bpnnvuUUVFhV599VXNmDFDK1eu1OzZsyVJLS0tmj59uj788EOde+65uv/++9XY2KjVq1dr7ty5+vzzz/XEE0/Y63322Wd13333aeDAgbrhhhvUr18/VVZWavv27Vq2bJnuv/9+paam6uGHH9ayZcu0f/9+Pfzww/b92yYtkvTZZ59p+vTpqqmp0dVXX61Zs2bpyJEj+tOf/qTJkydr7dq1mjlzZqfn9utf/1rvvPOOrr/+el155ZU6evSo322xb98+TZ48WRUVFbrqqqs0d+5cHThwQKtXr9abb76p1atX68Ybb+x0v9WrV2v9+vWaOXOm7r33XhUXFwf7MgAAwiDQMbBNsMf72tpaTZo0Sbt27dI3vvENe/x67bXXdPXVV+upp57Sfffd1+l+H330kX7+85/rsssu0/z581VZWam4uLjT+tyBU2IBPVhxcbElyZJk/fjHP/ZYtnXrVismJsZKTU216urqLMuyrMcff9ySZF133XVWa2ur/bOHDh2yzjnnHEuS9eGHH9q3n3feeVZcXJx1+PDhTo9dVVXl8f8vv/xyy9evVGtrqzVixAgrISHBY/2WZVkHDx60MjMzrQEDBlgnTpywb3/44YctSVZiYqL12Wef+Xzut956q8ft06ZNsyRZS5Ys8bj9ww8/tKKioqy0tDSrvr7evn3p0qWWJMvhcFhvvfWW134AgHmCHQMDOd5Lsi6//HKP2+666y5LkrVgwQKP23ft2mX16dPHio2Ntfbt22ff/v7779tdzz333Gl4psCZwalxOCukpKRo8eLFHrddcMEFuuWWW3T06FGtXbtWkvR///d/cjgc+t///V/FxHz9huiAAQP0s5/9zP6ZNg6HQzExMYqNje30mP369Qu4780331RRUZG+973vafLkyR7LMjMz9eCDD+rw4cN69913O933rrvu0nnnnRfQ45SVlWnDhg3KysrSj370I49lkydP1pw5c1RbW2tvj/ZuuOEGXXPNNQE/JwCAGQIdA9sEc7xvaWnRihUrlJSUpMcff9xj2ejRo/W9731Pra2tevnllzvdNy8vT/fcc0+QzwYIHSZCOCucf/756tOnT6fb285z/vzzz3Xs2DEVFRVp8ODBysnJ6fSz3/zmNyWdPIWtzS233KLGxkaNHTtWP/zhD/WnP/1JVVVVQfd9/PHHkk6ez/3II490+ueTTz6RJO3atavTfS+66KKAH+fzzz+XJF122WUeE7023p5jdx4HAGCOQMbA9oI53u/evVsnTpzQxIkTlZaW1mk54wp6Mj4jhLPCgAEDvN4+cOBASVJdXZ3q6uo8buto0KBB9s+2+eEPf6h+/frpmWee0ZNPPqnf/va3cjgcmjp1qn71q1/p/PPPD6ivurpa0snzsv1paGjw+RwC0Z3n2J3HAQCYI5Ax0NvtgWBcwdmMd4RwVjh8+LDX2w8dOiTp5GkDbd+303ZbRxUVFfbPtvfv//7v2rx5s6qrq/Xmm29q/vz52rhxo6ZPnx7wu0Nt6/zzn/8sy7J8/tP+Qgttgrl6W3efY7CPAwAwRyBjYHuMK8BJTIRwVvjss8907NixTrdv3LhRknTeeeepT58+GjFihA4ePKg9e/Z0+tn3339fkny+y5OamqqZM2fqhRde0G233abq6mp9+OGH9vLo6GhJksvl6nTfiy++WJI8fv5MaPss0T//+U85nc5Oy7t6jgCAnieQMbC7Ro8ercTERH3xxReqra3ttJxxBT0ZEyGcFerq6vToo4963Pbpp5/qlVdeUUpKim666SZJ0h133CHLsvTAAw94TFiOHDmixx57zP6ZNuvXr/c6oaisrJQkJSQk2Lelp6dLkg4cONDp52+88UaNGDFCTz/9tNatW+f1OXz88cdqbGwM6Pn6MmTIEE2bNk0lJSX63e9+57Fsy5YtWrlypdLS0uztAQDo+QIdA7sjLi5Ot9xyixoaGjpdkKGoqEi///3vFRsbq+9+97vdfgwgXPiMEM4KU6ZM0YsvvqgtW7bo0ksvtb9Dwe126/nnn1dycrIk6cc//rHeeust/fnPf1ZeXp5mzpxpf49QZWWlHnzwQY+rus2ZM0cJCQmaPHmysrOzZVmWPvzwQ23dulXnn3++/SFRSbrqqqu0evVqzZo1SzNmzFCvXr2UlZWl7373u4qNjdWaNWt09dVX69prr9WkSZM0ceJEJSYm6sCBA9q6dav27duniooKJSYmntK2eO6553TppZfqgQce0N///nddcMEF9vcIRUVFaenSpV4/VAsA6JkCHQO7a8mSJfrwww/11FNPaevWrZo6dar9PULHjh3TU089pWHDhp2mZwOEDu8I4awwbNgwffzxx0pLS9Nzzz2n1157Teeff77WrVvn8UVycXFx2rBhg30J0D/84Q9avny5Ro0apZUrV3p8map08uB/ySWX6LPPPtMzzzyjpUuXqrW1VU888YQ2btzo8cVwd955p/7rv/5LR48e1S9/+Uv97Gc/00svvWQvnzBhgrZt26af/OQnqqur09KlS/Xss8/qX//6l8477zy9/PLLQV2S25fhw4fr008/1b333qvdu3fr17/+td566y1dc8012rRp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\n",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "kernel = (.1, .8, .1)\n",
    "prior = predict(posterior, 1, kernel)\n",
    "book_plots.plot_prior_vs_posterior(prior, posterior, True, ylim=(0,.5))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The predict step shifted these probabilities to the right, smearing them about a bit. Now let's look at what happens at the next sense."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0IAAAGDCAYAAAAGdaBMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xt4FPWh//HP5k4IISEQICBJuIQggaDHVkVE0YKCt8pTHy7W4wUvRU9P6UXb88OiR48ttj1tbb0+6gEqEhSF3kQsXrAWBbEqkHARQiCEBBKSkBACIbs7vz/SDNlkd7Mbkuw37Pv1PD61O5nZ987OztfZnZ11WJZlCQAAAADCSESoAwAAAACgu3EgBAAAACDscCAEAAAAIOxwIAQAAAAg7HAgBAAAACDscCAEAAAAIOxwIAQAAAAg7HAgBAAAACDscCAEAAAAIOxwIAR0E4fDoSuvvDLUGQAAdJv9+/fL4XDojjvuCHUK0AYHQgAAAGHiyiuvlMPhCHUGYISoUAcA4WLnzp2Kj48PdQYAAN1myJAh2rlzp/r27RvqFKANDoSAbpKdnR3qBAAAulV0dDTjH4zFqXGAFy3Pad61a5e++c1vql+/furdu7cmTZqkv/3tbx5/v3TpUjkcDi1dulRvvfWWJk+erMTERI/TD3x9R+jYsWP6yU9+oqysLMXFxSk5OVnTpk3T+vXr2/zthg0b5HA49Oijj2rTpk2aPn26kpOT5XA4tH///s5eDQCAThDsmCJJp06d0s9//nONGzdO8fHxSkxM1OWXX66VK1d6vY81a9ZoypQpGjRokGJjYzVo0CBNmjRJzzzzjEfDhx9+KKlpTGr+p/XYVFJSov/4j//Q8OHDFRsbq5SUFN14443asmVLm/t99NFH5XA4tGHDBv3hD3/Q1772NfXu3VsZGRltHntrpaWluv/++5WRkaGYmBgNGDBAN998s9f7CWScBYLFJ0KAH0VFRbr00kuVk5Oj++67T2VlZXrttdc0ffp0rVixQrNmzfL4+1WrVmndunWaMWOGvvOd76ioqMjv8qurqzVx4kTt2rVLX//61zVz5kwdPXpUr7/+uq655ho9/fTTuv/++9vM9/HHH+tnP/uZLr/8cs2bN0/l5eWKiYnp1McOAOhcgY4pp0+f1rRp0/TRRx/p/PPP1wMPPKD6+nqtWrVKc+bM0RdffKEnn3zSXu5zzz2n+++/X4MGDdKNN96o/v37q7y8XNu2bdPSpUv1wAMPKCkpSY888oiWLl2qAwcO6JFHHrHnbz5okaTPP/9c06ZNU1VVla655hp7XPrjH/+oSZMmac2aNZoxY0abx/arX/1K7777rm644QZdddVVOnbsmN91sW/fPk2aNEllZWW6+uqrNWfOHB08eFCrVq3SW2+9pVWrVummm25qM1+w4yzglwWgjaKiIkuSJcn60Y9+5DFty5YtVlRUlJWUlGTV1NRYlmVZS5YssSRZDofDevvtt70uU5J1xRVXeNx2zz33WJKs+fPne9y+a9cuq0+fPlZ0dLS1b98++/YPPvjA7nr++ec74ZECALpasGPKE088YUmyrr/+equxsdH+28OHD1vnnXeeJcn66KOP7NsvuOACKyYmxjpy5Eib+66oqPD4/1dccYXl6z//GhsbrREjRlhxcXEey7csyzp06JCVlpZmDRw40Dp58qR9+yOPPGJJsuLj463PP//c52O//fbbPW6fOnWqJclavHixx+0fffSRFRERYSUnJ1u1tbX27YGMs0CwODUO8KNv375atGiRx20XXXSRbr31Vh07dkxr1qzxmHbjjTfq2muvDWjZp0+f1vLly5WQkKAnnnjCY9ro0aP13e9+V42NjXrllVfazJubm6v77rsvyEcDAAilQMeU//u//5PD4dD//u//KirqzMk7AwcO1E9/+lP7b5o5HA5FRUUpOjq6zX32798/4L633npLhYWF+u53v6tJkyZ5TEtLS9NDDz2kI0eO6L333msz7z333KMLLrggoPspKSnR+vXrlZ6erh/+8Ice0yZNmqTZs2erurq6zRgrBTfOAu3hQAjw48ILL1SfPn3a3N58PvUXX3zhcfvFF18c8LJ3796tkydPasKECUpOTm4z/Rvf+IakptMUWgvmfgAAZghkTDl+/LgKCws1ZMgQZWVltflbb2PDrbfeqvr6eo0dO1Y/+MEP9Mc//lEVFRVB933yySeSmr7X8+ijj7b559NPP5Uk7dq1q828wYxLzWPn5Zdf7nGg14zxD92F7wgBfgwcONDr7YMGDZIk1dTUeL09EM3z+ppn8ODBXu8j2PsBAJghkDGlI2PDD37wA/Xv31/PPvusnnrqKf3mN7+Rw+HQlClT9Mtf/lIXXnhhQH2V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VgEA2hP0uQ2rV6/WbbfdpkWLFunaa6/V5s2blZeXZw8skuRyueRyuTw+noqNjdV7772nKVOm6Lvf/a5uuOEGlZWV6e233zZqYKmrq9OCBQuUlpamuLg4TZgwQStXruy2+z9+/LgeeughTZs2TQMGDJDD4dCjjz7abfcvSe+//77uuusuZWdnq3fv3hoyZIhuuukm/fOf/+y2hi+//FLXXXedhg0bpl69eqlfv3669NJLtXz58m5raO2ll16Sw+FQQkJCt93nhg0b7NNsWv/T3e9M/+Mf/9CMGTOUnJysXr16adSoUXr88ce75b7vuOMOn+uhO9fFF198oW9+85tKS0tTfHy8srOz9dhjj6m+vr5b7l+SPv30U11zzTXq06ePEhISNGXKFG3cuLHb7r+nYKzqWoxVTRirmjBWNWGsOqPHjFUWPEydOtVKSkqynn/+eev999+37r77bkuS9eqrr3bL/RcVFVl9+/a1Jk+ebN/3I4880i333exb3/qWNWXKFOvZZ5+1NmzYYK1atcq65JJLrKioKOu9997rloYPPvjAuu+++6xXXnnFev/9962//OUv1uzZsy1J1uOPP94tDS2VlJRYffv2tdLS0qzevXt32/1+8MEHliTrZz/7mfXJJ594/HP8+PFu63j11VetiIgIa/bs2daf//xn6/3337defPFF67//+7+75f737t3b5vF/8sknVv/+/a0hQ4ZYTqezyxsKCgqsuLg4Kzc313rttdes9957z3rkkUesyMhI68Ybb+zy+7csy/r000+t2NhY6/LLL7fWrFljrV692rrkkkus2NhY6+OPP+6WBpiBsYqxyhvGKsYqxqrgcCDUwltvvWVJslasWOFx+9SpU620tLRu2YDdbrfldrsty7KsioqKkAwuR44caXPb8ePHrYEDB1pXX311t7a0dvHFF1vnnXdet9/v9ddfb91www3W7bffHpLBZdWqVd12n62VlJRYvXv3tubPnx+yBm82bNhgSbIefvjhbrm/hQsXWpKsvXv3etx+7733WpKsqqqqLm+45pprrIEDB1onTpywb6utrbX69+9vTZw4scvvH2ZgrGrCWNUWYxVjFWNVcMy97E8IrFmzRgkJCbrllls8br/zzjtVWlqqzZs3d3mDCVcbSk1NbXNbQkKCzj//fB08eDAERWf079+/23/Nfvny5frwww/1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\n",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "likelihood = lh_hallway(hallway, z=1, z_prob=.75)\n",
    "posterior = update(likelihood, prior)\n",
    "book_plots.plot_prior_vs_posterior(prior, posterior, ylim=(0,.5))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Notice the tall bar at position 1. This corresponds with the (correct) case of starting at position 0, sensing a door, shifting 1 to the right, and sensing another door. No other positions make this set of observations as likely. Now we will add an update and then sense the wall."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0IAAAGDCAYAAAAGdaBMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xt4VNWh/vF3cieEQAgECEgSLiHIJeixVSle0IKCt8pTHy7W4wVv6OkpvWjbHxZ79Nhi29PW1uujHqAiQVHoTcTihdaiIFYFEgEhJEAgkJCEhHAJmZn9+yMn20wyk8wOycwa5vt5Hh5x7+y131l7ZS/W7DVrXJZlWQIAAACAKBIT7gAAAAAAEGoMhAAAAABEHQZCAAAAAKIOAyEAAAAAUYeBEAAAAICow0AIAAAAQNRhIAQAAAAg6jAQAgAAABB1GAgBAAAAiDoMhIAQcblcuvzyy8MdAwCAkCktLZXL5dJtt90W7ihAGwyEAAAAosTll18ul8sV7hiAEeLCHQCIFtu3b1dycnK4YwAAEDKDBw/W9u3b1bt373BHAdpgIASESF5eXrgjAAAQUvHx8fR/MBZT4wA/Ws5p3rFjh77xjW+ob9++6tmzpyZNmqS//e1vPj+/ZMkSuVwuLVmyRG+88YYuvfRSpaam+kw/CPQZoaNHj+pHP/qRcnNzlZSUpLS0NE2dOlXr1q1r87Pr16+Xy+XST3/6U23cuFHTpk1TWlqaXC6XSktLu7oaAABdwGmfIkmnTp3Sz3/+c40bN07JyclKTU3VJZdcohUrVvg9x+rVqzV58mQNHDhQiYmJGjhwoCZNmqSnnnrKJ8Pf//53SU19UvOf1n1TWVmZ/uM//kPDhg1TYmKi0tPTdf3112vz5s1tzvvTn/5ULpdL69ev1x/+8Ad95StfUc+ePZWdnd3mtbd28OBB3XfffcrOzlZCQoL69++vG2+80e95gulnAad4IgS0o6SkRBdffLHGjh2re+65R+Xl5XrllVc0bdo0LV++XDNnzvT5+ZUrV2rt2rWaPn267r33XpWUlLRbfk1NjSZOnKgdO3boq1/9qmbMmKEjR47o1Vdf1VVXXaUnn3xS9913X5vjPvjgA/3sZz/TJZdcorlz56qiokIJCQld+toBAF0r2D7l9OnTmjp1qt5//32de+65uv/++3XixAmtXLlSs2fP1qeffqrHH3/cLveZZ57Rfffdp4EDB+r6669Xv379VFFRoa1bt2rJkiW6//771adPHz388MNasmSJ9u7dq4cfftg+vnnQIkmffPKJpk6dqurqal111VV2v/THP/5RkyZN0urVqzV9+vQ2r+1Xv/qV3n77bV133XW64oordPTo0XbrYs+ePZo0aZLKy8t15ZVXavbs2dq/f79WrlypN954QytXrtQNN9zQ5jin/SzQLgtAGyUlJZYkS5L1gx/8wGff5s2brbi4OKtPnz5WbW2tZVmWtXjxYkuS5XK5rDfffNNvmZKsyy67zGfbXXfdZUmy5s2b57N9x44dVq9evaz4+Hhrz5499vb33nvPzvXss892wSsFAHQ3p33KY489Zkmyrr32WquxsdH+2UOHDlnnnHOOJcl6//337e3nnXeelZCQYB0+fLjNuSsrK33+/7LLLrMC/fOvsbHRGj58uJWUlORTvmVZ1oEDB6zMzExrwIAB1smTJ+3tDz/8sCXJSk5Otj755JOAr/3WW2/12T5lyhRLkrVo0SKf7e+//74VExNjpaWlWXV1dfb2YPpZwCmmxgHt6N27txYuXOiz7YILLtDNN9+so0ePavXq1T77rr/+el199dVBlX369GktW7ZMKSkpeuyxx3z2jRo1St/+9rfV2Niol156qc2x+fn5uueeexy+GgBAOAXbp/zv//6vXC6X/ud//kdxcV9O3hkwYIB+8pOf2D/TzOVyKS4uTvHx8W3O2a9fv6DzvfHGGyouLta3v/1tTZo0yWdfZmamHnzwQR0+fFjvvPNOm2PvuusunXfeeUGdp6ysTOvWrVNWVpa+//3v++ybNGmSZs2apZqamjZ9rOSsnwU6wkAIaMf555+vXr16tdnePJ/6008/9dl+4YUXBl32zp07dfLkSU2YMEFpaWlt9n/961+X1DRNoTUn5wEAmCGYPuXYsWMqLi7W4MGDlZub2+Zn/fUNN998s06cOKExY8boe9/7nv74xz+qsrLScb4PP/xQUtPnen7605+2+fPRRx9Jknbs2NHmWCf9UnPfeckll/gM9JrR/yFU+IwQ0I4BAwb43T5w4EBJUm1trd/twWg+NtAxgwYN8nsOp+cBAJghmD6lM33D9773PfXr109PP/20nnjiCf3mN7+Ry+XS5MmT9ctf/lLnn39+UPmqqqokNX0Opz319fUBX0Mw6P9gCp4IAe04fPiw3+2HDh2SpDbfi+Bk9ZrmY5vLaq28vNzvOZyeBwBghmD6lM72Df/+7/+ujRs3qqqqSm+88Ybmzp2r9evXa+rUqUE/HWou809/+pMsywr4p+VCC83o/xCJGAgB7fjkk0907NixNtvXr18vSUHPh/Zn1KhRSk5O1meffaaampo2+9977z1JCvqdPACA2YLpU3r16qXhw4frwIED2rVrV5uf7ahv6NOnj6ZPn67nn39et912m6qqqvT+++/b+2NjYyVJHo+nzbEXXXSRJPn8fHdo7jv/+c9/yu12t9lP/4dQYSAEtKO2tlaPPPKIz7aPP/5YL7/8snr37q0bb7yx02UnJCTo5ptvVn19fZsPzxYXF+t3v/ud4uPjdcstt3T6HAAAcwTbp9xxxx2yLEsPPPCAz4DlyJEjevTRR+2fabZ27Vq/A4qKigpJUlJSkr0tPT1dkrR///42P3/DDTdo+PDheuqpp7RmzRq/r+HDDz/UiRMngnq9gQwZMkRTpkxRaWmpfvvb3/rs27Rpk5YvX660tLQz6mOBYPAZIaAdl156qV544QVt2rRJX/va1+zvfPB6vXruueeUmpp6RuUvWrRI77//vp588klt3rxZkydPtr9H6NixY3ryySeVk5PTRa8GABBOwfYpP/jBD/Tmm2/qT3/6k/Lz8zV9+nT7e4QqKir04IMP+qzqNmvWLCUlJWnSpEnKzs6WZVl6//33tXnzZp1//vn24gOSdOWVV2rlypWaMWOGpk2bph49eigrK0u33HKL4uPjtWrVKl111VW65pprNHHiRE2YMEHJycnav3+/Nm/erD179qi8vFzJyclnVBfPPvusvva1r+mBBx7Q3/72N11wwQX29wjFxMRo8eLFfheWALoST4SAduTk5OjDDz9UWlqann32Wb366qs6//zztWbNmjZfptoZffv21YcffqgHH3xQVVVV+vWvf62VK1fqq1/9qtauXev3y1QBAJEp2D4lISFB69ats79a4fe//72WLl2qkSNHavny5T5fpio1val28cUX65NPPtHTTz+txYsXq7GxUY8//rjWr1/v84Xbd955p3784x/r6NGj+sUvfqGf/OQnevHFF+3948eP15YtW/TDH/5QtbW1Wrx4sZ555hn961//0nnnnaeXXnrJ0ZLcgQwbNkwf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\n",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "prior = predict(posterior, 1, kernel)\n",
    "likelihood = lh_hallway(hallway, z=0, z_prob=.75)\n",
    "posterior = update(likelihood, prior)\n",
    "book_plots.plot_prior_vs_posterior(prior, posterior, ylim=(0,.5))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This is exciting! We have a very prominent bar at position 2 with a value of around 35%. It is over twice the value of any other bar in the plot, and is about 4% larger than our last plot, where the tallest bar was around 31%. Let's see one more cycle."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0IAAAGDCAYAAAAGdaBMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xt4VNWh/vF3cieEkBAIEJEkXINcgh5blSKKFhS8VZ76cLEeL3hDT0/pRdtzsOjRY4ttT1tbr49aoCJBUWhrRaw3WouCWBVIBISQACGBhARy4ZJkZvbvj/yymUlmJjMxmVlhvp/n4RH3zl77nbVX9mLN3ntth2VZlgAAAAAgisREOgAAAAAAhBsDIQAAAABRh4EQAAAAgKjDQAgAAABA1GEgBAAAACDqMBACAAAAEHUYCAEAAACIOgyEAAAAAEQdBkIAAAAAog4DISBMHA6HLr300kjHAAAgbEpLS+VwOHTLLbdEOgrQDgMhAACAKHHppZfK4XBEOgZghLhIBwCixY4dO5ScnBzpGAAAhM1ZZ52lHTt2qG/fvpGOArTDQAgIk7y8vEhHAAAgrOLj4+n/YCxujQN88LyneefOnfrWt76lfv36qXfv3po8ebL+9re/ef38smXL5HA4tGzZMr3xxhuaMmWKUlNTvW4/8PeM0LFjx/STn/xEo0aNUlJSktLT0zV9+nS9/fbb7X52w4YNcjgceuihh7Rp0ybNmDFD6enpcjgcKi0t7epqAAB0gVD7FEk6deqUfv7zn2v8+PFKTk5WamqqLr74Yq1atcrnPtauXaupU6dq0KBBSkxM1KBBgzR58mQ9+eSTXhn+/ve/S2rpk1r/tO2bysrK9B//8R8aNmyYEhMTlZGRoWuvvVZbtmxpt9+HHnpIDodDGzZs0B//+Ed97WtfU+/evZWTk9Pus7dVXl6ue+65Rzk5OUpISNCAAQN0/fXX+9xPMP0sECquCAEBlJSU6KKLLtK4ceN01113qaKiQi+//LJmzJihlStXavbs2V4/v3r1aq1fv14zZ87U3XffrZKSkoDlHz16VJMmTdLOnTv19a9/XbNmzdKRI0f0yiuv6IorrtATTzyhe+65p912H374oX72s5/p4osv1vz581VZWamEhIQu/ewAgK4VbJ/S1NSk6dOn64MPPtA555yje++9VydOnNDq1as1d+5cffbZZ3rsscfscp9++mndc889GjRokK699lr1799flZWV2rZtm5YtW6Z7771XaWlpevDBB7Vs2TLt27dPDz74oL1966BFkj799FNNnz5dNTU1uuKKK+x+6U9/+pMmT56stWvXaubMme0+269+9Su98847uuaaa3TZZZfp2LFjAeti7969mjx5sioqKnT55Zdr7ty5OnDggFavXq033nhDq1ev1nXXXdduu1D7WSAgC0A7JSUlliRLkvWjH/3Ia92WLVusuLg4Ky0tzaqtrbUsy7KWLl1qSbIcDof15ptv+ixTknXJJZd4LbvjjjssSdaCBQu8lu/cudPq06ePFR8fb+3du9de/v7779u5nnnmmS74pACA7hZqn/Loo49akqyrr77aam5utn/20KFD1tlnn21Jsj744AN7+bnnnmslJCRYhw8fbrfvqqoqr/+/5JJLLH///GtubraGDx9uJSUleZVvWZZ18OBBKysryxo4cKB18uRJe/mDDz5oSbKSk5OtTz/91O9nv/nmm72WT5s2zZJkLVmyxGv5Bx98YMXExFjp6elWXV2dvTyYfhYIFbfGAQH07dtXixcv9lp2/vnn68Ybb9SxY8e0du1ar3XXXnutrrzyyqDKbmpq0ooVK5SSkqJHH33Ua93o0aP13e9+V83NzXrxxRfbbZufn6+77rorxE8DAIikYPuUP/zhD3I4HPq///s/xcWdvnln4MCB+ulPf2r/TCuHw6G4uDjFx8e322f//v2DzvfGG2+ouLhY3/3udzV58mSvdVlZWbr//vt1+PBhvfvuu+22veOOO3TuuecGtZ+ysjK9/fbbys7O1g9/+EOvdZMnT9acOXN09OjRdn2sFFo/C3SEgRAQwHnnnac+ffq0W956P/Vnn33mtfyCCy4Iuuxdu3bp5MmTmjhxotLT09ut/+Y3vymp5TaFtkLZDwDADMH0KfX19SouLtZZZ52lUaNGtftZX33DjTfeqBMnTmjs2LH6wQ9+oD/96U+qqqoKOd9HH30kqeW5noceeqjdn48//liStHPnznbbhtIvtfadF198sddArxX9H8KFZ4SAAAYOHOhz+aBBgyRJtbW1PpcHo3Vbf9sMHjzY5z5C3Q8AwAzB9Cmd6Rt+8IMfqH///nrqqaf0+OOP6ze/+Y0cDoemTp2qX/7ylzrvvPOCylddXS2p5TmcQBoaGvx+hmDQ/8EUXBECAjh8+LDP5YcOHZKkdu9FCGX2mtZtW8tqq6Kiwuc+Qt0PAMAMwfQpne0b/v3f/12bNm1SdXW13njjDc2fP18bNmzQ9OnTg7461Frmn//8Z1mW5feP50QLrej/0BMxEAIC+PTTT1VfX99u+YYNGyQp6PuhfRk9erSSk5P1+eef6+jRo+3Wv//++5IU9Dd5AACzBdOn9OnTR8OHD9fBgwe1e/fudj/bUd+QlpammTNn6rnnntMtt9yi6upqffDBB/b62NhYSZLL5Wq37YUXXihJXj/fHVr7zn/+859yOp3t1tP/IVwYCAEB1NbW6uGHH/Za9sknn+ill15S3759df3113e67ISEBN14441qaGho9/BscXGxfve73yk+Pl433XRTp/cBADBHsH3KbbfdJsuydN9993kNWI4cOaJHHnnE/plW69ev9zmgqKyslCQlJSXZyzIyMiRJBw4caPfz1113nYYPH64nn3xS69at8/kZPvroI504cSKoz+vPkCFDNG3aNJWWluq3v/2t17rNmzdr5cqVSk9P/0p9LBAMnhECApgyZYqef/55bd68Wd/4xjfsdz643W49++yzSk1N/UrlL1myRB988IGeeOIJbdmyRVOnTrXfI1RfX68nnnhCubm5XfRpAACRFGyf8qMf/Uhvvvmm/vznPys/P18zZ8603yNUWVmp+++/32tWtzlz5igpKUmTJ09WTk6OLMvSBx98oC1btui8886zJx+QpMsvv1yrV6/WrFmzNGPGDPXq1UvZ2dm66aabFB8frzVr1uiKK67QVVddpUmTJmnixIlKTk7WgQMHtGXLFu3du1cVFRVKTk7+SnXxzDPP6Bvf+Ibuu+8+/e1vf9P5559vv0coJiZGS5cu9TmxBNCVuCIEBJCbm6uPPvpI6enpeuaZZ/TKK6/ovPPO07p169q9TLUz+vXrp48++kj333+/qqur9etf/1qrV6/W17/+da1fv97ny1QBAD1TsH1KQkKC3n77bfvVCr///e+1fPlyjRw5UitXrvR6marU8qXaRRddpE8//VRPPfWUli5dqubmZj322GPasGGD1wu3b7/9dv3Xf/2Xjh07pl/84hf66U9/qhdeeMFeP2HCBG3dulU//vGPVVtbq6VLl+rpp5/Wv/71L5177rl68cUXQ5qS259hw4bpk08+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\n",
      "text/plain": [
       "<Figure size 900x400 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "prior = predict(posterior, 1, kernel)\n",
    "likelihood = lh_hallway(hallway, z=0, z_prob=.75)\n",
    "posterior = update(likelihood, prior)\n",
    "book_plots.plot_prior_vs_posterior(prior, posterior, ylim=(0,.5))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "I ignored an important issue. Earlier I assumed that we had a motion sensor for the predict step; then, when talking about the dog and the microwave I assumed that you had no knowledge that he suddenly began running. I mentioned that your belief that the dog is running would increase over time, but I did not provide any code for this. In short, how do we detect and/or estimate changes in the process model if we aren't directly measuring it?\n",
    "\n",
    "For now I want to ignore this problem. In later chapters we will learn the mathematics behind this estimation; for now it is a large enough task just to learn this algorithm. It is profoundly important to solve this problem, but we haven't yet built enough of the mathematical apparatus that is required, and so for the remainder of the chapter we will ignore the problem by assuming we have a sensor that senses movement."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The Discrete Bayes Algorithm\n",
    "\n",
    "This chart illustrates the algorithm:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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nfKAgACdfTX3au7/py2mTZuGrKwsbNu2rd3bMtmhZjk5OWHixImwtbXVlmk0GmzevBlFRUUSRkZExjRr1ixtK86Nli9fDi8vL0yaNKnZ7b766iuMHTsWKSkpmDRpEp577jn4+fnhrbfewp133qkzlUVxcTGef/551NXVIT4+Hi+88ALGjh2LDRs2YNSoUTh8+LDOvr/88kvcd999uHTpEqZOnYoXX3wRMTExyM7O1kl2OiMlJUU7DcecOXMwffr0Dp1bk4MHD+KOO+6Aq6sr5s6di549e+LLL7/E448/jl9++QX33HMP/P39MXfuXLi5ueG9997Du+++26n3Fbj+rMMxY8ZAoVBg7ty5GDZsGNasWYOYmBjU1tZq1xs7diweffRRAEB0dDQWLlyofbm5ubX6XomiiJ07dyIsLOyW6xrS7bffDgDYvn17+zcWiVqRm5srLlu2TFy6dKn29Z///EcsLy+XOjQiMpD09HQRgBgbGyuKoij2799fHDRokHb5lStXRLlcLv7zn/8URVEUAYh9+vTRLj9z5oyoUCjE2267TSwqKtLZ9zvvvCMCED/44ANtWW1trXjlyhW9OE6fPi06OTmJMTExOuVDhw4VbW1txfz8fL1tCgsLtX//7rvvRADid999p7fejh07RADiwoULmy0HIH777bd627X33G7c35o1a7Tl9fX14qBBg0RBEESVSiUeOnRIu6y8vFz08vISPTw8xIaGhg4d+8bjrlq1SmfdRx55RAQg/vTTT216T27lzJkzIgDx4Ycf1lv29ddfi++//77Oq1evXtrYFAqFmJKS0q7jNSkvLxcBiFFRUe3eli071CofHx+MHz9ep6y6uhobN27UuUogIssxc+ZMnDx5EkePHgVw/ZaFWq3GrFmzml1/6dKlaGxsxKeffopu3brpLJs/fz48PT3x008/acuUSiX8/Pz09tO/f3+MGzcOu3fvRkNDg84yGxsb2NjY6G3j4eHR7vNrzm233dbs+bX33JqMHTsWCQkJ2n/b2NjgvvvugyiKmDx5ss7cZs7Ozpg0aRKKiopw5cqVTh07KipKp1UKgPa8bm4x66imGLt376637PHHH8e8efO0r9raWmRmZmqXL1u2TNtCA/zvtldbRnQ5OzvDzs5O5z1qK3arp1vq3bs3IiMjsW/fPm1ZaWkpNm/ejLvuuoujM4gszCOP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zJiy4wWT//73vzh37hx+8YtfTOlxc3NzMXfuXHz44Yd46aWXoFCw4ZeIZELQuN11110CgDh27NioZdevXy8ADPmoqqoSvb294u233xZ33HGHSE1NFWq1WpjNZnHvvfeK4uLiMe3rSrt27RJ33323MBqNQq1Wi8zMTLFu3TrR2dnp0zlWVVUJAKKgoMDn6/L555+Lm2++WZjNZqHRaERqaqooKCgQX3zxhc/n0H/cNWvWDNh3UVGRACDWr18v9u3bJ5YuXSqio6OFyWQSa9euFV1dXUIIITZv3ixuvPFGERUVJRISEsQLL7wg+vr6BuzL12s+lddbCCG++93vCkmSxKVLlwY8f+zYMaHRaLzHLiws9G7r7u4WOTk53m133323z8e70oYNGwQAsW3btnG9nogoGLFlZwLi4+MBXB7cOdq4laVLl6K6uhqffPIJlixZgqVLl3q3xcbGorW1Fc8++yxuuukmLF++HHFxcaisrMS///1vbN68Gbt378a1117r0776vf/++3jyyScRFxeHe+65B2azGYcPH8aGDRtQVFSEoqIiqNVq/10QAO+99x6efPJJWCwW3HvvvTAajWhoaMChQ4ewadMmrFq1yqdzsNvtIx7n4MGD+M1vfoOCggL8+Mc/RlFREd577z04HA6sXLkSa9aswYoVK7Bw4UJ8+eWX2LhxI/R6PdatW+fdh6/XfCqvtxACO3fuxIwZMwbsG7h824zXX38dzz33HADghRdewF133YX09HSsW7cO3377LYDL3YofffTRiMcZzg033AAA2LFjB26//fZx7YOIKOgEOm2Fsk2bNgkAQq/Xi5/97Gfi66+/Fq2trcOWv7JV4mo9PT2itrZ20PMnT54U0dHR4rbbbvN5X0IIcerUKRERESHmzZsnWlpaBmx7/fXXBQDx29/+dtRz7G9hsdlsYv369UM+Nm/e7C2fn58v1Gq1aGpqGrSvixcv+nwOo7XsABCbNm3yPu90OsWcOXOEJEnCZDKJQ4cOebc5HA6RkJAgjEajcLlc3ufHcs2n6nqfOnVKABAPP/zwkNs9Ho8oKCjwXoNly5aJPXv2CIVCIQAISZLE1q1bRz3OcBwOhwAgbr755nHvg4go2DDsTNDGjRtFdHT0gK4Nm80mnnrqKXH27NkBZUf7hTmce+65R6jVauF0On3e1zPPPCMAiD179gza5na7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4cKF+Prrr/0aqoiIgg3DDhEREckau7GIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjWGHaIiIhI1hh2iIiISNYYdoiIiEjW/g+4zqmq9uTT2wAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 400x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "book_plots.predict_update_chart()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This filter is a form of the g-h filter. Here we are using the percentages for the errors to implicitly compute the $g$ and $h$ parameters. We could express the discrete Bayes algorithm as a g-h filter, but that would obscure the logic of this filter.\n",
    "\n",
    "The filter equations are:\n",
    "\n",
    "$$\\begin{aligned} \\bar {\\mathbf x} &= \\mathbf x \\ast f_{\\mathbf x}(\\bullet)\\, \\, &\\text{Predict Step} \\\\\n",
    "\\mathbf x &= \\|\\mathcal L \\cdot \\bar{\\mathbf x}\\|\\, \\, &\\text{Update Step}\\end{aligned}$$\n",
    "\n",
    "$\\mathcal L$ is the usual way to write the likelihood function, so I use that. The $\\|\\|$ notation denotes taking the norm. We need to normalize the product of the likelihood with the prior to ensure $x$ is a probability distribution that sums to one.\n",
    "\n",
    "We can express this in pseudocode.\n",
    "\n",
    "**Initialization**\n",
    "\n",
    "    1. Initialize our belief in the state\n",
    "    \n",
    "**Predict**\n",
    "\n",
    "    1. Based on the system behavior, predict state for the next time step\n",
    "    2. Adjust belief to account for the uncertainty in prediction\n",
    "    \n",
    "**Update**\n",
    "\n",
    "    1. Get a measurement and associated belief about its accuracy\n",
    "    2. Compute how likely it is the measurement matches each state\n",
    "    3. Update state belief with this likelihood\n",
    "\n",
    "When we cover the Kalman filter we will use this exact same algorithm; only the details of the computation will differ.\n",
    "\n",
    "Algorithms in this form are sometimes called *predictor correctors*. We make a prediction, then correct them.\n",
    "\n",
    "Let's animate this. First Let's write functions to perform the filtering and to plot the results at any step. I've plotted the position of the doorways in black. Prior are drawn in orange, and the posterior in blue. I draw a thick vertical line to indicate where Simon really is. This is not an output of the filter - we know where Simon is only because we are simulating his movement."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "def discrete_bayes_sim(prior, kernel, measurements, z_prob, hallway):\n",
    "    posterior = np.array([.1]*10)\n",
    "    priors, posteriors = [], []\n",
    "    for i, z in enumerate(measurements):\n",
    "        prior = predict(posterior, 1, kernel)\n",
    "        priors.append(prior)\n",
    "\n",
    "        likelihood = lh_hallway(hallway, z, z_prob)\n",
    "        posterior = update(likelihood, prior)\n",
    "        posteriors.append(posterior)\n",
    "    return priors, posteriors\n",
    "\n",
    "\n",
    "def plot_posterior(posteriors, i):\n",
    "    plt.title('Posterior')\n",
    "    book_plots.bar_plot(hallway, c='k')\n",
    "    book_plots.bar_plot(posteriors[i], ylim=(0, 1.0))\n",
    "    plt.axvline(i % len(hallway), lw=5)    \n",
    "    \n",
    "def plot_prior(priors, i):\n",
    "    plt.title('Prior')\n",
    "    book_plots.bar_plot(hallway, c='k')\n",
    "    book_plots.bar_plot(priors[i], ylim=(0, 1.0), c='#ff8015')\n",
    "    plt.axvline(i % len(hallway), lw=5)    \n",
    "\n",
    "def animate_discrete_bayes(step):\n",
    "    step -= 1\n",
    "    i = step // 2    \n",
    "    if step % 2 == 0:\n",
    "        plot_prior(priors, i)\n",
    "    else:\n",
    "        plot_posterior(posteriors, i)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's run the filter and animate it."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "4d17ec9283824c48b639b64199628ef5",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(IntSlider(value=1, description='step'), Output()), _dom_classes=('widget-interact',))"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# change these numbers to alter the simulation\n",
    "kernel = (.1, .8, .1)\n",
    "z_prob = 1.0\n",
    "hallway = np.array([1, 1, 0, 0, 0, 0, 0, 0, 1, 0])\n",
    "\n",
    "# measurements with no noise\n",
    "zs = [hallway[i % len(hallway)] for i in range(50)]\n",
    "\n",
    "priors, posteriors = discrete_bayes_sim(prior, kernel, zs, z_prob, hallway)\n",
    "interact(animate_discrete_bayes, step=IntSlider(value=1, max=len(zs)*2));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can see the results. You can see how the prior shifts the position and reduces certainty, and the posterior stays in the same position and increases certainty as it incorporates the information from the measurement. I've made the measurement perfect with the line `z_prob = 1.0`; we will explore the effect of imperfect measurements in the next section. Finally, \n",
    "\n",
    "Another thing to note is how accurate our estimate becomes when we are in front of a door, and how it degrades when in the middle of the hallway. This should make intuitive sense. There are only a few doorways, so when the sensor tells us we are in front of a door this boosts our certainty in our position. A long stretch of no doors reduces our certainty."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## The Effect of Bad Sensor Data\n",
    "\n",
    "You may be suspicious of the results above because I always passed correct sensor data into the functions. However, we are claiming that this code implements a *filter* - it should filter out bad sensor measurements. Does it do that?\n",
    "\n",
    "To make this easy to program and visualize I will change the layout of the hallway to mostly alternating doors and hallways, and run the algorithm on 6 correct measurements:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "55c0af7cbfa944b0a6d0f154483e9bfd",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(IntSlider(value=12, description='step', max=12), Output()), _dom_classes=('widget-intera…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "hallway = np.array([1, 0, 1, 0, 0]*2)\n",
    "kernel = (.1, .8, .1)\n",
    "prior = np.array([.1] * 10)\n",
    "zs = [1, 0, 1, 0, 0, 1]\n",
    "z_prob = 0.75\n",
    "priors, posteriors = discrete_bayes_sim(prior, kernel, zs, z_prob, hallway)\n",
    "interact(animate_discrete_bayes, step=IntSlider(value=12, max=len(zs)*2));"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We have identified the likely cases of having started at position 0 or 5, because we saw this sequence of doors and walls: 1,0,1,0,0. Now I inject a bad measurement. The next measurement should be 0, but instead we get a 1:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA0IAAAGDCAYAAAAGdaBMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xt8VPWd//H3ZHIjCSEBEiREknBJAgSC9dGy8NOt1ALiZVfdsgjahwJdLVgVa6VbsWjrDbvValvtWrWWFgm7FqnVilYRrdVK8VIkERDCJUCAhCQkBAjJzJzfH2xOM2SScyZAzsyc1/Px8KGe75wz3/OZz3wy3znf8x2PYRiGAAAAAMBF4pzuAAAAAAD0NgZCAAAAAFyHgRAAAAAA12EgBAAAAMB1GAgBAAAAcB0GQgAAAABch4EQAAAAANdhIAQAAADAdRgIAQAAAHAdBkIAAPyf/Px85efnO90NAEAvYCAEAAji8XiC/vF6vRo4cKAuvvhirVy5stf6ce+998rj8ejtt9/utecEALhHvNMdAABEpnvuuUeS1NbWpq1bt+r3v/+93nrrLX300Uf6r//6L4d7d3asXbvW6S4AAHoJAyEAQEj33ntv0P+vXbtWU6ZM0aOPPqpvfetbysvLc6ZjZ9Hw4cOd7gIAoJcwNQ4AYMvFF1+s4uJiBQIBbdiwIajtf/7nf3ThhReqX79+6tOnj0pKSvTggw+qpaWl03E++eQTzZw5U3l5eUpKStKAAQM0btw43XbbbWpra5N08l6dH/zgB5KkyZMnB03V6+jYsWN66KGHNH78eKWmpiotLU0TJ05UWVlZp+d9++235fF4dO+99+qDDz7Q9OnTlZmZKY/Ho127dpnPG+oeoZaWFj300EMaO3asUlJSlJ6ergsvvDDkVMFdu3bJ4/Hohhtu0JYtW/S1r31NWVlZiouLY5ofAEQQrggBAGwzDKPTtu9+97v60Y9+pKysLF177bVKTU3Vq6++qsWLF+u1117Tm2++qcTEREnS3//+d02cOFFxcXH6l3/5FxUUFKipqUnbt2/XL37xCz3wwANKSEjQwoUL9fvf/17vvPOOrr/++pCDk8OHD+srX/mKPvnkE51//vmaO3euAoGAXn/9dc2ePVsVFRW6//77O+33/vvv68EHH9SFF16oefPmqaamxuxfKK2trZo6dareffddjR49WjfffLOOHTumF154QbNmzdInn3yihx9+uNN+27dv1z/90z+pqKhI1113nZqbm9W3b98wog0AOKsMAAA6kGSE+vPw1ltvGXFxcYbH4zF27txpGIZh/OUvfzEkGXl5ecbBgwfNx7a1tRmXXnqpIcm4//77ze233367IclYvXp1p+PX19cbfr/f/P977rnHkGSsW7cuZD+vv/56Q5Lx4x//OGj78ePHjWnTphkej8f4+OOPze3r1q0zz+2///u/Qx4zLy/PyMvLC9r2wAMPGJKMyy+/3GhrazO3HzhwwDj33HMNSca7775rbt+5c6f5PN/73vdCPg8AwHlMjQMAhHTvvffq3nvv1eLFizVjxgxNnTpVgUBACxcuNK/QPPfcc5Kku+++W9nZ2ea+8fHxevTRRxUXF6dnn33W3N4+tS0lJaXT82VmZiouzt6fpbq6Oi1fvlxf/OIXdccddwS1JScn6+GHH5ZhGFqxYkWnfUtLS3XTTTfZeh5J+tWvfiWPx6NHHnlE8fH/mEgxaNAgff/73zcfc6pBgwaZC04AACIPU+MAACG136Pj8XiUkZGhCy64QPPmzdN1111nPuaTTz6RdPI+nlMVFRUpNzdXO3fu1OHDh5WRkaFrrrlGjz/+uK688krNmDFDF198sf7f//t/YS9SsGHDBvn9fkmdF3WQZN5rtGXLlk5tEyZMsP08R44cUWVlpXJzc1VYWNip/atf/aok6eOPP+7UVlpaqqSkJNvPBQDoXQyEAAAhGSHuBzpVY2OjJOmcc84J2T548GBVVVWpsbFRGRkZ+uIXv6h3331XDzzwgF544QX95je/kSQVFxfr3nvv1cyZM231ra6uTtLJAdGpCzd01Nzc3GlbV30Nxc75dXxcT58HAND7mBoHAOixfv36SZIOHDgQsn3//v1Bj5OkiRMn6pVXXlFDQ4Pee+89ff/739eBAwc0a9YsvfXWW2E97+233y7DMLr8Z926dZ32PXXluTN9fj15HgBA72MgBADosfPOO0+SQi4LvX37du3du1cFBQXKyMjo1J6UlKRJkybphz/8oX7605/KMAz9/ve/N9u9Xq8kmVPgOvrSl76kuLg4vfvuu2foTELr27evhg8frn379mnbtm2d2tsHWl/4whfOaj8AAGceAyEAQI/NnTtXknT//fertrbW3O73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Zo0uvfRSrVy5UjNnzjS3T58+XZ9++qmqqqq6XD77F7/4hRYsWKAPPvhAEyZMkHRyQYTx48crLS1NH3zwgd1uAAAAAMBpCWsgJElTp07Vhx9+qIcfflgjRoxQWVmZnn76aS1fvlzXXnutJGnevHlatmyZKisrlZeXJ+nkD6qef/75ampq0tKlS5Wdna0nn3xSL7/8Mj+oCgAAAKBXhb1Ywosvvqivf/3rWrJkiS655BKtX79eZWVl5iBIkvx+v/x+f9DlqaSkJK1du1aTJ0/WLbfcoiuuuEL79+/XmjVrGAR1obm5WQsXLlROTo6Sk5M1fvx4rVy50uluRYwjR45o0aJFmjp1qrKysuTxeHTvvfc63a2I8dZbb2nu3LkqLi5WamqqhgwZon/913/VRx995HTXIsbf//53XXbZZRo6dKj69Omj/v37a+LEiVq+fLnTXYtYzzzzjJG0J9sAAAqVSURBVDwej9LS0pzuSkR4++23zWnbp/7DTIdgf/nLX3TppZcqMzNTffr00ciRI3Xfffc53a2IcMMNN3SZR+TSSZ988omuvPJK5eTkKCUlRcXFxfrhD3+oY8eOOd21iPC3v/1N06ZNU9++fZWWlqbJkyfrvffec7pbES/sK0LoPVOnTtWGDRu0dOlSFRYWasWKFXrmmWf0/PPPa/bs2U53z3G7du3S+PHjVVpaqsLCQj3zzDO65557GAz9nxkzZqiurk4zZszQ6NGjVVtbq0ceeUQffvihXn/9dX3lK19xuouOe/vtt7Vy5UpdcMEFGjJkiI4eParnn39eK1eu1H333ae7777b6S5GlH379mnMmDFKTU1VY2Ojmpubne6S495++21NnjxZDz74oCZPnhzUVlJSwoDx/6xYsUJf//rX9e///u+aPXu20tLSVFlZqerqai1ZssTp7jmusrJStbW1nbZfccUVSkpK0u7du7u89cANPvvsM51//vkqKirSXXfdpYEDB+rPf/6z7r//fl122WV66aWXnO6iozZs2KALL7xQX/rSl/Ttb39bhmHoRz/6kT755BOtW7dOEydOdLqLkctARPrjH/9oSDJWrFgRtH3KlClGTk6O4fP5HOpZ5AgEAkYgEDAMwzBqa2sNScY999zjbKciyMGDBzttO3LkiDFo0CDj4osvdqBH0WPChAnGueee63Q3Is7ll19uXHHFFcb1119vpKamOt2diLBu3TpDkvHCCy843ZWItXfvXiM1NdWYP3++012JKm+//bYhybj77rud7orjFi9ebEgytm/fHrT9xhtvNCQZ9fX1DvUsMkybNs0YNGiQcfToUXNbU1OTMXDgQGPSpEkO9izyhT01Dr1j9erVSktL04wZM4K2z5kzR9XV1Vq/fr1DPYscrCLYvezs7E7b0tLSNHr0aO3Zs8eBHkWPgQMHdvtL1G60fPlyvfPOO3ryySed7gqizDPPPKOjR4/qu9/9rtNdiSrPPvusPB6P5s6d63RXHJeQkCBJ6tevX9D2jIwMxcXFKTEx0YluRYz33ntPF110kVJSUsxtffv21T//8z/r/fff1/79+x3sXWRjIBShysvLNWrUqE4fxsaNG2e2A+FqbGzUxx9/rDFjxjjdlYgSCATk8/lUW1urJ598Uq+//jof2jqoqanRwoULtXTpUuXm5jrdnYh08803Kz4+Xunp6Zo2bZr+8pe/ON2liPHnP/9Z/fv315YtWzR+/HjFx8crOztb3/zmN9XU1OR09yJSY2Ojfve73+niiy9WQUGB091x3PXXX6+MjAzNnz9fO3bs0JEjR/TKK6/oqaee0s0339zp51bcprW1VUlJSZ22t28L9fM1OImBUISqq6sL+SOz7dtC/TgtYOXmm2/W0aNHtXjxYqe7ElEWLFighIQEZWdn6/bbb9dPf/pT3XTTTU53K2IsWLBARUVFmj9/vtNdiTj9+vXTbbfdpqeeekrr1q3T448/rj179uiiiy7S66+/7nT3IsK+fft07NgxzZgxQzNnztSbb76pO++8U7/5zW906aWXdvrdD0hlZWU6fvy45s2b53RXIkJ+fr7++te/qry8XMOHD1d6erquuOIKXX/99Xr88ced7p7jRo8erQ8++ECBQMDc5vP5zNlDfGbsGnM/Ilh3076YEoZwff/739fzzz+vn/3sZzr//POd7k5Eueuuu/SNb3xDNTU1evnll/Wtb31LR48e1Xe+8x2nu+a4VatW6eWXX9Ynn3xC3QnhvPPO+//t3TtIW20cBvDnU4kRoV6SYIg1QrEdRMWCRodqHIy3KjS4Fae2ClIVS/EummgkLgE3J0VRCFKFDqW2g4YuvSHSWq2UgpduQtAQk9YWyfsN/bS12n5b3yPn+cEZ8mZ5OHBC/ue9/HH16tXjz0VFRbDb7cjOzkZ7ezvKy8slplOGSCSCg4MD9Pf3o7OzEwBQUlICjUaD1tZWLCwsoLS0VHJKZRkbG4NOp4PdbpcdRRG2trZQU1ODlJQUzM7OwmAw4NWrV3C5XAiFQhgbG5MdUarm5mbcvn0bTU1N6OnpQSQSgdPpxPb2NoD/byqqZrwzCqXT6c6s4Hd3dwHgzNkiot9xOp1wuVwYGhpCU1OT7DiKYzabkZeXh6qqKoyOjqKhoQFdXV1nnuKkJqFQCHfv3kVzczNMJhMCgQACgQC+ffsGAAgEAgiHw5JTKk9iYiKqq6uxsrKCL1++yI4jnU6nA4BTRWFlZSUAYHl5+a9nUrKVlRUsLS2hrq7uzOVOatTZ2YlgMIinT5+itrYWxcXFaGtrw8jICMbHx/Hs2TPZEaW6desWhoeHMTU1hYsXL8JsNuP9+/fHL/NSU1MlJ1QuFkIKlZ2djfX1dRweHp4YP1rnmZWVJSMWnUNOpxMOhwMOhwPd3d2y45wLFosFh4eH2NjYkB1FKr/fj52dHXg8HiQlJR1fXq8X4XAYSUlJJ3rI0Q9Hy704i/Zjb+uvju4R31afdDS7cefOHclJlOPNmzfIzMw8tRcoPz8fAPdNA0BHRwf8fj/evXuHra0tPH/+HHt7e4iPj+cqkD/gr49C2e12hEIhzM3NnRifnJyEyWRCQUGBpGR0ngwODsLhcKC3txf9/f2y45wbPp8PUVFRuHTpkuwoUhmNRvh8vlNXeXk5tFotfD4fXC6X7JiKs7e3h0ePHiE3NxdarVZ2HOlqa2sBAPPz8yfGHz9+DAAoLCz865mU6uvXr5ienobFYuELz5+YTCasra2d6l324sULAOAhLv+JjY1FVlYW0tPT8enTJ8zMzKC+vh5xcXGyoykW9wgpVGVlJWw2GxobGxEMBpGRkQGv14snT55genpa1Y3VfjY/P49wOIz9/X0A35uuzc7OAgCqqqpOHCWpNh6PB319faioqMD169dPdSbnnw+goaEBFy5cgMViQUpKCvx+Px48eICZmRm0tbXBYDDIjiiVVqtFSUnJqfGJiQlER0ef+Z3a3Lx583hppV6vx8ePH+HxeLCzs4OJiQnZ8RShrKwMNTU1GBgYQCQSQWFhIZaWluB0OlFdXY1r167JjqgYDx8+xO7uLmeDftHa2oobN27AZrPh3r170Ov1ePnyJdxuNzIzM4+XWarV6uoq5ubmkJeXh9jYWLx9+xbDw8O4fPkyBgcHZcdTNsl9jOgP9vf3RUtLizAajUKj0YicnBzh9Xplx1KU9PR0AeDMa3NzU3Y8qaxW62/vDR/978bHx0VRUZHQ6/UiJiZGJCYmCqvVKqampmRHUzQ2VP3B7XaL3NxckZCQIKKjo4XBYBB2u128fv1adjRF+fz5s+jo6BBpaWkiJiZGmM1m0dXVJQ4ODmRHUxSbzSbi4+NFMBiUHUVxFhcXRVlZmTAajSIuLk5cuXJF3L9/X/j9ftnRpPvw4YMoLi4WycnJQqPRiIyMDNHb2ytCoZDsaIr3jxA8t5KIiIiIiNSFe4SIiIiIiEh1WAgREREREZHqsBAiIiIiIiLVYSFERERERESqw0KIiIiIiIhUh4UQERERERGpDgshIiIiIiJSHRZCRERERESkOiyEiIiIiIhIdVgIERERERGR6rAQIiIiIiIi1WEhREREREREqvMvNooLhA2n07MAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 900x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "measurements = [1, 0, 1, 0, 0, 1, 1]\n",
    "priors, posteriors = discrete_bayes_sim(prior, kernel, measurements, z_prob, hallway);\n",
    "plot_posterior(posteriors, 6)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "That one bad measurement has significantly eroded our knowledge. Now let's continue with a series of correct measurements."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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QFRUlCJxK7p79y42bNiAHj162O2PrtDQUGRkZKC4uNik/MiRIwCg+AOSHh4e6Ny5M1q2bInMzEx89tlnmDJlCjw9PRWNS7WHuYG5gblBWcwNdS832O99Z05gyJAhGDhwIKZPn47CwkKEh4cjMTERX375JTZs2ABXV1fF27B7926UlJSgqKgIAPDjjz9i69atAIDY2FiT137Vlg8//BBvvfUWBg8ejKFDhyI9Pd1kuVKDx9SpU+Hr64sePXogODgYeXl52LJlCz777DPMmTMHjRo1UiQuAOh0OkRHR5uVr127Fq6urhaX1ZZx48ahRYsw56V0AAAgAElEQVQWePTRRxEUFIQzZ87gww8/RE5ODtauXatY3JiYGAwbNgwLFy6EwWBAVFQUvv32WyxYsABPPfUU+vbtq1jscp9//jny8/Pt9gkTAMyaNQvPPPMMBg4ciNdeew1BQUFIT0/H4sWL0bFjRwwZMkSRuKdOncK2bdvw6KOPwsPDAydOnMCSJUsQERGBRYsWKRKTlMHcwNzA3KAs5oY6mBscewdV/WPNt60qqWXLlpV+pfuD3+5aW/r161flV8krZfXq1fL4449LUFCQaLVa8ff3l379+sn69esVi/kw9nhQbvHixRIZGSl+fn7i6uoqjRo1khEjRsg333yjaFwRkVu3bsncuXOlefPmotVqpUWLFvLmm2/a5YE1kXtfvOXt7S2FhYV2iVdu//79EhMTIyEhIeLp6Slt27aV2bNnS15enmIxf/75Z3niiSckICBA3N3dJTw8XObPn2/3+6epdjA3MDcwNyiHuaHu5QaNiB3fv0VERERERPUan4EgIiIiIiKrcQJBRERERERW4wSCiIiIiIisxgkEERERERFZjRMIIiIiIiKyGicQRERERERkNU4giIiIiIjIapxAEBERERGR1TiBICIiIiIiq3ECQUREREREVuMEgoiIiIiIrMYJBBERERERWY0TCCIiIiIishonEEREREREZDVOIIiIiIiIyGqcQBARERERkdU4gSAiIiIiIqtxAkFERERERFbjBIKIiIiIiKzGCQQREREREVmNEwgiIiIiIrIaJxBEFkRHR0Oj0Ti6GRZlZWXhlVdeQc+ePRESEgIPDw+Ehobi8ccfx5o1a1BaWuroJhIROaW6nBssmTx5MjQaDTQaDc6ePevo5pAT4QSCqJ45d+4c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\n",
      "text/plain": [
       "<Figure size 800x550 with 10 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "with figsize(y=5.5):\n",
    "    measurements = [1, 0, 1, 0, 0, 1, 1, 1, 0, 0]\n",
    "    for i, m in enumerate(measurements):\n",
    "        likelihood = lh_hallway(hallway, z=m, z_prob=.75)\n",
    "        posterior = update(likelihood, prior)\n",
    "        prior = predict(posterior, 1, kernel)\n",
    "        plt.subplot(5, 2, i+1)\n",
    "        book_plots.bar_plot(posterior, ylim=(0, .4), title='step {}'.format(i+1))\n",
    "    plt.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We quickly filtered out the bad sensor reading and converged on the most likely positions for our dog."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Drawbacks and Limitations\n",
    "\n",
    "Do not be mislead by the simplicity of the examples I chose. This is a robust and complete filter, and you may use the code in real world solutions. If you need a multimodal, discrete filter, this filter works.\n",
    "\n",
    "With that said, this filter it is not used often because it has several limitations. Getting around those limitations is the motivation behind the chapters in the rest of this book.\n",
    "\n",
    "The first problem is scaling. Our dog tracking problem used only one variable, $pos$, to denote the dog's position. Most interesting problems will want to track several things in a large space. Realistically, at a minimum we would want to track our dog's $(x,y)$ coordinate, and probably his velocity $(\\dot{x},\\dot{y})$ as well. We have not covered the multidimensional case, but instead of an array we use a multidimensional grid to store the probabilities at each discrete location. Each `update()` and `predict()` step requires updating all values in the grid, so a simple four variable problem would require $O(n^4)$ running time *per time step*. Realistic filters can have 10 or more variables to track, leading to exorbitant computation requirements.\n",
    "\n",
    "The second problem is that the filter is discrete, but we live in a continuous world. The histogram requires that you model the output of your filter as a set of discrete points. A 100 meter hallway requires 10,000 positions to model the hallway to 1cm accuracy. So each update and predict operation would entail performing calculations for 10,000 different probabilities. It gets exponentially worse as we add dimensions. A 100x100 m$^2$ courtyard requires 100,000,000 bins to get 1cm accuracy.\n",
    "\n",
    "A third problem is that the filter is multimodal. In the last example we ended up with strong beliefs that the dog was in position 4 or 9. This is not always a problem. Particle filters, which we will study later, are multimodal and are often used because of this property. But imagine if the GPS in your car reported to you that it is 40% sure that you are on D street, and 30% sure you are on Willow Avenue. \n",
    "\n",
    "A forth problem is that it requires a measurement of the change in state. We need a motion sensor to detect how much the dog moves. There are ways to work around this problem, but it would complicate the exposition of this chapter, so, given the aforementioned problems, I will not discuss it further.\n",
    "\n",
    "With that said, if I had a small problem that this technique could handle I would choose to use it; it is trivial to implement, debug, and understand, all virtues."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Tracking and Control\n",
    "\n",
    "We have been passively tracking an autonomously moving object. But consider this very similar problem. I am automating a warehouse and want to use robots to collect all of the items for a customer's order. Perhaps the easiest way to do this is to have the robots travel on a train track. I want to be able to send the robot a destination and have it go there. But train tracks and robot motors are imperfect. Wheel slippage and imperfect motors means that the robot is unlikely to travel to exactly the position you command. There is more than one robot, and we need to know where they all are so we do not cause them to crash.\n",
    "\n",
    "So we add sensors. Perhaps we mount magnets on the track every few feet, and use a Hall sensor to count how many magnets are passed. If we count 10 magnets then the robot should be at the 10th magnet. Of course it is possible to either miss a magnet or to count it twice, so we have to accommodate some degree of error. We can use the code from the previous section to track our robot since magnet counting is very similar to doorway sensing.\n",
    "\n",
    "But we are not done. We've learned to never throw information away. If you have information you should use it to improve your estimate. What information are we leaving out? We know what control inputs we are feeding to the wheels of the robot at each moment in time. For example, let's say that once a second we send a movement command to the robot - move left 1 unit, move right 1 unit, or stand still.  If I send the command 'move left 1 unit' I expect that in one second from now the robot will be 1 unit to the left of where it is now. This is a simplification because I am not taking acceleration into account, but I am not trying to teach control theory. Wheels and motors are imperfect. The robot might end up 0.9 units away, or maybe 1.2 units. \n",
    "\n",
    "Now the entire solution is clear. We assumed that the dog kept moving in whatever direction he was previously moving. That is a dubious assumption for my dog! Robots are far more predictable. Instead of making a dubious prediction based on assumption of behavior we will feed in the command that we sent to the robot! In other words, when we call `predict()` we will pass in the commanded movement that we gave the robot along with a kernel that describes the likelihood  of that movement."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Simulating the Train Behavior\n",
    "\n",
    "We need to simulate an imperfect train. When we command it to move it will sometimes make a small mistake, and its sensor will sometimes return the incorrect value."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Train(object):\n",
    "\n",
    "    def __init__(self, track_len, kernel=[1.], sensor_accuracy=.9):\n",
    "        self.track_len = track_len\n",
    "        self.pos = 0\n",
    "        self.kernel = kernel\n",
    "        self.sensor_accuracy = sensor_accuracy\n",
    "\n",
    "    def move(self, distance=1):\n",
    "        \"\"\" move in the specified direction\n",
    "        with some small chance of error\"\"\"\n",
    "\n",
    "        self.pos += distance\n",
    "        # insert random movement error according to kernel\n",
    "        r = random.random()\n",
    "        s = 0\n",
    "        offset = -(len(self.kernel) - 1) / 2\n",
    "        for k in self.kernel:\n",
    "            s += k\n",
    "            if r <= s:\n",
    "                break\n",
    "            offset += 1\n",
    "        self.pos = int((self.pos + offset) % self.track_len)\n",
    "        return self.pos\n",
    "\n",
    "    def sense(self):\n",
    "        pos = self.pos\n",
    "         # insert random sensor error\n",
    "        if random.random() > self.sensor_accuracy:\n",
    "            if random.random() > 0.5:\n",
    "                pos += 1\n",
    "            else:\n",
    "                pos -= 1\n",
    "        return pos"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "With that we are ready to write the filter. We will put it in a function so that we can run it with different assumptions. I will assume that the robot always starts at the beginning of the track. The track is implemented as being 10 units long, but think of it as a track of length, say 10,000, with the magnet pattern repeated every 10 units. A length of 10 makes it easier to plot and inspect."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [],
   "source": [
    "def train_filter(iterations, kernel, sensor_accuracy, \n",
    "             move_distance, do_print=True):\n",
    "    track = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])\n",
    "    prior = np.array([.9] + [0.01]*9)\n",
    "    posterior = prior[:]\n",
    "    normalize(prior)\n",
    "    \n",
    "    robot = Train(len(track), kernel, sensor_accuracy)\n",
    "    for i in range(iterations):\n",
    "        # move the robot and\n",
    "        robot.move(distance=move_distance)\n",
    "\n",
    "        # peform prediction\n",
    "        prior = predict(posterior, move_distance, kernel)       \n",
    "\n",
    "        #  and update the filter\n",
    "        m = robot.sense()\n",
    "        likelihood = lh_hallway(track, m, sensor_accuracy)\n",
    "        posterior = update(likelihood, prior)\n",
    "        index = np.argmax(posterior)\n",
    "\n",
    "        if do_print:\n",
    "            print('''time {}: pos {}, sensed {}, '''\n",
    "                  '''at position {}'''.format(\n",
    "                    i, robot.pos, m, track[robot.pos]))\n",
    "\n",
    "            print('''        estimated position is {}'''\n",
    "                  ''' with confidence {:.4f}%:'''.format(\n",
    "                  index, posterior[index]*100))            \n",
    "\n",
    "    book_plots.bar_plot(posterior)\n",
    "    if do_print:\n",
    "        print()\n",
    "        print('final position is', robot.pos)\n",
    "        index = np.argmax(posterior)\n",
    "        print('''Estimated position is {} with '''\n",
    "              '''confidence {:.4f}%:'''.format(\n",
    "                index, posterior[index]*100))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Read the code and make sure you understand it. Now let's do a run with no sensor or movement error. If the code is correct it should be able to locate the robot with no error. The output is a bit tedious to read, but if you are at all unsure of how the update/predict cycle works make sure you read through it carefully to solidify your understanding."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "time 0: pos 4, sensed 4, at position 4\n",
      "        estimated position is 4 with confidence 99.9900%:\n",
      "time 1: pos 8, sensed 8, at position 8\n",
      "        estimated position is 8 with confidence 100.0000%:\n",
      "time 2: pos 2, sensed 2, at position 2\n",
      "        estimated position is 2 with confidence 100.0000%:\n",
      "time 3: pos 6, sensed 6, at position 6\n",
      "        estimated position is 6 with confidence 100.0000%:\n",
      "\n",
      "final position is 6\n",
      "Estimated position is 6 with confidence 100.0000%:\n"
     ]
    },
    {
     "data": {
      "image/png": "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NurZZ5/Vhg0bdP/99+uuu+7yusSkcvDgQc2YMUO5ubk6fvy4GhoavC7Jc2+++abmz5+vBx98UPPnz4/aV1xcTMP4/61fv17XXHONvvGNb2jZsmXKy8tTeXm5Kisrdffdd3tdnufKy8tVVVXVaftll12mrKws7du3T8Fg0IPKksO2bdt01llnaerUqbrzzjs1dOhQ/elPf9IDDzygSy65RL/97W+9LtFT77//vr7yla/o7LPP1g9+8ANZlqV//ud/1ocffqjNmzdr3rx5XpeYvCwkpf/5n/+xJFnr16+P2r5gwQKroKDACoVCHlWWPCKRiBWJRCzLsqyqqipLknXPPfd4W1QSOXz4cKdt9fX11ogRI6wLLrjAg4pSx9y5c60zzjjD6zKSzqWXXmpddtll1re+9S0rNzfX63KSwubNmy1J1nPPPed1KUnrwIEDVm5urrVixQqvS7bFTHcAAAhwSURBVEkpb775piXJuuuuu7wuxXOrVq2yJFmffvpp1PYbb7zRkmTV1NR4VFlyWLRokTVixAirsbHR3lZXV2cNHTrUOuecczysLPmxLFuSevHFF5WXl6elS5dGbb/22mtVWVkZteiEX7GcurPhw4d32paXl6fp06dr//79HlSUOoYOHRq1MiakdevW6Y9//KMee+wxr0tBinniiSfU2NioH/3oR16XklKefPJJBQIBXXfddV6X4rmMjAxJ0oABA6K2Dxw4UGlpacrMzPSirKTx1ltv6fzzz1dOTo69LT8/X+eee67efvttHTp0yMPqkhuNUJIqLS3VtGnTOr0YmzVrlr0fiNfx48f1t7/9TTNmzPC6lKQSiUQUCoVUVVWlxx57TK+99hov2to5cuSIVq5cqdWrV2vMmDFel5OUbr75ZqWnp6t///5atGiR/vznP3tdUtL405/+pMGDB2vHjh2aM2eO0tPTNXz4cH33u99VXV2d1+UlpePHj+v555/XBRdcoPHjx3tdjue+9a1vaeDAgVqxYoV2796t+vp6/f73v9eaNWt08803d/rcSb9paWlRVlZWp+1t22J9fA1OoRFKUtXV1TE/oLZtW6wPpwVMbr75ZjU2NmrVqlVel5JUbrrpJmVkZGj48OG67bbb9G//9m/6zne+43VZSeOmm27S1KlTtWLFCq9LSToDBgzQ97//fa1Zs0abN2/WI488ov379+v888/Xa6+95nV5SeHgwYNqamrS0qVLdcUVV+j111/X7bffrv/8z//UxRdf3OkDECGVlJToxIkTWr58udelJIVx48bpL3/5i0pLSzVx4kT1799fl112mb71rW/pkUce8bo8z02fPl3vvPOOIpGIvS0UCtl3D/GasWvc+5HEnG774pYwxOsf//Ef9eyzz+rf//3fddZZZ3ldTlK58847df311+vIkSN66aWX9L3vfU+NjY36h3/4B69L89zGjRv10ksv6cMPP+S8E8OZZ56pM8880/7/r3zlK1q8eLFmzpypO+64Q4sWLfKwuuQQiUR08uRJ3XPPPfrxj38sSTr//POVmZmplStXatOmTfra177mcZXJ5cknn9SQIUO0ePFir0tJCnv37tVll12mESNG6Pnnn9ewYcP07rvv6oEHHlBDQ4OefPJJr0v01C233KLly5fre9/7nlatWqVIJKL77rtP+/btkySlpXHdoyskk6SGDBkSs4OvqamRpJhXi4Cu3HfffXrggQf0T//0T/re977ndTlJZ+zYsfrCF76giy++WL/85S9144036ic/+UnMVZz8pKGhQTfffLNuueUWFRQU6NixYzp27JhaWlokSceOHVNjY6PHVSafgQMH6tJLL9XHH3+sEydOeF2O54YMGSJJnZrCiy66SJL0t7/9rc9rSmYff/yxPvjgA1199dUxb3fyox//+Meqq6vTa6+9pq9//es699xzdfvtt+sXv/iFnnrqKf3xj3/0ukRPXXfddVq9erWeeeYZjRkzRmPHjtW2bdvsX+aNHj3a4wqTF41Qkpo5c6a2b9+uUCgUtb3tPs/i4mIvykIKuu+++3Tvvffq3nvv1Z133ul1OSnh7LPPVigU0u7du70uxVNHjx7V4cOH9fDDD2vQoEH2n5KSEjU2NmrQoEFRnyGHz7Xd7sVVtM/f29pRW0b8tjpa29WN66+/3uNKksdHH32k6dOnd3ov0Be/+EVJvG9akn70ox/p6NGj2rp1q/bu3au3335btbW1ys3N5S4QB5x9ktTixYvV0NCgjRs3Rm1fu3atCgoKNHfuXI8qQyq5//77de+99+quu+7SPffc43U5KWPz5s1KS0vThAkTvC7FUyNHjtTmzZs7/Vm0aJGys7O1efNmPfDAA16XmXRqa2v1+9//XnPmzFF2drbX5Xju61//uiTplVdeidr+8ssvS5K+9KUv9XlNyaq5uVnr1q3T2WefzS882ykoKFBZWVmnzy77y1/+Ikks4vL/ZWVlqbi4WIWFhaqoqNBvfvMb3XDDDerXr5/XpSUt3iOUpC666CItWLBAK1asUF1dnSZNmqSSkhK9+uqrWrduna8/WK29V155RY2Njaqvr5d06kPXnn/+eUnSxRdfHLWUpN88/PDDuvvuu3XhhRfqkksu6fTJ5Lz4kG688Ub1799fZ599tkaMGKGjR4/queee029+8xvdfvvtGjZsmNcleio7O1vnn39+p+1PP/20gsFgzH1+s2zZMvvWyqFDh2rXrl16+OGHdfjwYT399NNel5cUFi5cqMsuu0w//elPFYlE9KUvfUkffPCB7rvvPl166aX68pe/7HWJSeO///u/VVNTw9WgDlauXKnLL79cCxYs0G233aahQ4fqnXfe0UMPPaTp06fbt1n6VWlpqTZu3KgvfOELysrK0pYtW7R69WpNnjxZ999/v9flJTePP8cIDurr661bb73VGjlypJWZmWnNmjXLKikp8bqspFJYWGhJivlnz549XpfnqfPOO6/LbPjWP+Wpp56yvvKVr1hDhw610tPTrYEDB1rnnXee9cwzz3hdWlLjA1U/99BDD1lz5syxBgwYYAWDQWvYsGHW4sWLrffee8/r0pJKU1OT9aMf/cg644wzrPT0dGvs2LHWT37yE+vkyZNel5ZUFixYYOXm5lp1dXVel5J03njjDWvhwoXWyJEjrX79+llTpkyxfvjDH1pHjx71ujTP7dy50zr33HOtwYMHW5mZmdakSZOsu+66y2poaPC6tKQXsCzWrQQAAADgL7xHCAAAAIDv0AgBAAAA8B0aIQAAAAC+QyMEAP+v/ToQAAAAABDkbz3IZREAsCNCAADAjggBAAA7IgQAAOyIEAAAsCNCAADAjggBAAA7IgQAAOwEsdhwlGPJVX4AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 900x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import random\n",
    "\n",
    "random.seed(3)\n",
    "np.set_printoptions(precision=2, suppress=True, linewidth=60)\n",
    "train_filter(4, kernel=[1.], sensor_accuracy=.999,\n",
    "             move_distance=4, do_print=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that the code was able to perfectly track the robot so we should feel reasonably confident that the code is working. Now let's see how it fairs with some errors. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "time 0: pos 4, sensed 4, at position 4\n",
      "        estimated position is 4 with confidence 96.0390%:\n",
      "time 1: pos 8, sensed 9, at position 8\n",
      "        estimated position is 9 with confidence 52.1180%:\n",
      "time 2: pos 3, sensed 3, at position 3\n",
      "        estimated position is 3 with confidence 88.3993%:\n",
      "time 3: pos 7, sensed 8, at position 7\n",
      "        estimated position is 8 with confidence 49.3174%:\n",
      "\n",
      "final position is 7\n",
      "Estimated position is 8 with confidence 49.3174%:\n"
     ]
    },
    {
     "data": {
      "image/png": "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NWvWaPbs2SoqKkpw6AAAAADQOwldPluS5s+fr/fff18/+9nPNGHCBJWVlenRRx/VmjVr9K1vfUuStHTpUq1evVqVlZUqLi6WdOILVc844ww1NjZq5cqVGjp0qB555BG98MILfKEqAAAAgFMq4XPPnnvuOV155ZW68847dd555+mdd95RWVmZOwmSpHA4rHA4HHWeXlZWljZs2KC5c+fqpptu0sKFC3XgwAG99NJLTIJ60NTUpOXLl6uoqEjZ2dmaNWuW1q1bl+xhpYyjR4/qtttu0/z581VYWKhAIKC777472cNKGa+//rquvvpqlZSUKDc3VyNHjtTf//3f6y9/+Uuyh5YyPvzwQ1144YUaPXq0+vXrp8GDB2vOnDlas2ZNsoeWsh577DEFAgHl5eUleygp4Y033nA/v9r119tvv53s4aWUP/3pT7rgggs0aNAg9evXTxMnTtS9996b7GGlhO985zs9Po94Lp3wwQcf6OKLL1ZRUZFycnJUUlKin/70p2ppaUn20FLCu+++qwULFqh///7Ky8vT3Llz9eabbyZ7WCkv4SNCOHXmz5+v9957TytXrtSkSZO0du1aPfbYY3r66ae1ZMmSZA8v6Xbv3q1Zs2Zp5syZmjRpkh577DHdddddTIb+v8WLF6uurk6LFy/W1KlTVVNTowcffFDvv/++XnnlFX3ta19L9hCT7o033tC6dev05S9/WSNHjlRzc7OefvpprVu3Tvfee6/uuOOOZA8xpezfv1/Tpk1Tbm6ujhw5oqampmQPKeneeOMNzZ07V/fff7/mzp0btay0tJQJ4/+3du1aXXnllfrmN7+pJUuWKC8vT5WVlaqurtadd96Z7OElXWVlpWpqarrdvnDhQmVlZWnPnj0KBoNJGFlq2LJli8444wxNnjxZt99+u4YMGaI//vGPuu+++3ThhRfqt7/9bbKHmFTvvfeevvKVr+jMM8/UD37wAzmOo3/+53/WBx98oI0bN2rOnDnJHmLqcpCS/ud//seR5Kxduzbq9nnz5jlFRUVOKBRK0shSRyQScSKRiOM4jlNTU+NIcu66667kDiqFHDx4sNttR48edYYNG+ace+65SRiRd8yePds57bTTkj2MlHPRRRc5CxcudL797W87ubm5yR5OSti4caMjyXnmmWeSPZSUtW/fPic3N9dZtmxZsofiKW+88YYjybnj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\n",
      "text/plain": [
       "<Figure size 900x400 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "random.seed(5)\n",
    "train_filter(4, kernel=[.1, .8, .1], sensor_accuracy=.9,\n",
    "         move_distance=4, do_print=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "There was a sensing error at time 1, but we are still quite confident in our position. \n",
    "\n",
    "Now let's run a very long simulation and see how the filter responds to errors."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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wO7flStXFMv94IMPhI+Pj5g6dar45JNPxJ49e8SaNWvE8uXLFcs8ffq0Q40HDhwQUVFRomvXrsJkMnk8MzMzUwQGBorBgweLDz/8UOzevVssXbpUGI1Gcffdd3s8TwghDh8+LAICAsQtt9witm/fLrZt2yZGjhwpAgICxP79+xXJVBv2+9bTS7+X3euFYL9XAvu9Ovq925N1Lfn8888FALFx40a75SkpKSImJkaRF6EQQlgsFmGxWIQQQly6dMkrzfvixYsOy65cuSI6deokxo4dq2i2M8nJyaJ79+6K5/zmN78Rd911l5gxY4ZXmvfmzZsVy2goPz9fhISEiAULFngtszH79u0TAMRzzz2nyPhLliwRAMTp06ftls+bN08AECUlJR7PvP3220WnTp3s3skpLy8XUVFR4qabbvJ4HimL/V5Ov/dWrxeC/d5b2O+9T9dX9Gzfvhr+oF4AACAASURBVB2hoaGYPHmy3fKZM2eioKDA4SuxPUXGXQ6io6MdloWGhqJ///44d+6cV/cFAKKiohT/ZsYNGzbg66+/xptvvqlojixvv/02Kisr8dRTT8neFbzzzjswGAyYNWuWIuP7+fkBAMLDw+2WR0REwMfHB/7+/h7P/O677zBmzBgEBwfblrVr1w6jRo3C/v37ceHCBY9nknLY7+X0e2/0eoD93pvY771P15P11nxDnxaUlZXhp59+woABAxTPslgsMJlMuHTpEt58803861//UrTpFBYWYtGiRUhNTUW3bt0Uy2nokUcega+vL8LCwnD77bfj3//+t2JZ33zzDdq3b4+srCwMGTIEvr6+iI6Oxvz581FeXq5YbkNlZWXYsmULxo4di549eyqSMWPGDERERGDBggU4c+YMrly5gs8++wyrV6/GI4884nDbP0+4du0aAgICHJZblzm72wmpF/u9d/q9t3s9wH7Pft96au/3up6s6/1b9h555BFUVlZiyZIlimc9/PDD8PPzQ3R0NBYvXozXX38dDz30kKJ5ffv2xYIFCxTLqC88PBwLFy7E6tWrsXfvXqxatQrnzp3DmDFj8K9//UuRzPPnz6OqqgqTJ0/GlClT8NVXX+GJJ57Ae++9hwkTJjjcx1UpaWlpuHr1KmbPnq1YRlxcHA4cOICMjAz07t0bYWFhuOuuuzBjxgysWrVKkcz+/fvj4MGDsFgstmUmk8n2DqzW+4PWsN97p997u9dbM9nv2e9bQ/X9XvZ5ODL16dNH3HHHHQ7LCwoKBACxcuVKxffBW+cwNvTcc88JAOJvf/ubV/LOnj0rvv/+e/H555+L+fPnCx8fH/Hyyy8rkrVlyxbh7+8vMjMzbcuUPofRmdLSUtGtWzcxaNAgRcbv06eP09fpa6+9JgB47WK+YcOGiQ4dOojq6mrFMnJyckR8fLy4+eabxZYtW8TXX38t/u///k+EhYWJWbNmKZL5zjvvCABiwYIFIj8/X+Tl5YnZs2cLo9EoAIhNmzYpkkvKYL/3Tr/3Zq8Xgv2e/d4z1N7vdT1ZHzlypBg+fLjD8oyMDAFArF69WvF9kNG8ly1bJgCIP//5z17LbGj+/PnC19dXFBYWenRc60VUjz/+uCgtLbX9mzZtmggJCRGlpaWioqLCo5lNmT9/vgAgqqqqPD72yJEjBQDx008/2S0/efKkACD+8pe/eDyzofT0dAFALFy4UNGcKVOmiOjoaIfn7t133xUAFLsdYGpqqggNDbXdpuzGG28UTz31lAAgvv32W0UySRns93L6vVK9Xgj2eyHY7z1Jzf1e16fBDBw4ECdOnIDJZLJb3pxv6Gurli9fjmXLlmHZsmV49tlnpe3HiBEjYDKZcObMGY+OW1RUhIsXL+KVV15BZGSk7V9aWhoqKysRGRmJ++67z6OZTRF1H00qcYGZ9VzbxjK98Y2Q77zzDgBgzpw5iub85z//Qf/+/R3OVRw+fDgA5c43fuqpp1BUVIRjx44hNzcX+/fvR2lpKUJCQvCrX/1KkUxSBvu9nH6vVK8H2O/rZ7Lft56a+72uJ+ut+Ya+tmjFihVYtmwZnnvuOSxdulTqvuzduxc+Pj7o1auXR8ft3Lkz9u7d6/Dv9ttvR2BgIPbu3YsXX3zRo5mNKS0txWeffYYhQ4YgMDDQ4+Pfe++9AICdO3faLd+xYwcAYOTIkR7PrK+mpgYbNmzAiBEjFJ/oxMTEIDMzExUVFXbLDxw4AACKXlQWEBCApKQkxMbGIi8vDx9++CHmzp2LoKAgxTLJ89jv5VCq1wPs9wD7vaeptd8rfz8lFRs/fjxSUlKwYMEClJeXIz4+Hmlpafjiiy+wYcMGGI1GxbJ37tyJyspKXLlyBQBw/PhxbNmyBQAwYcIEu9sHecIrr7yC559/HnfccQfuvPNOHDx40G69Ugf6vHnzEBYWhhEjRqBTp04oKirC5s2b8eGHH+KJJ55Ax44dPZoXGBiIMWPGOCxft24djEaj03WeMH36dPTo0QPDhg1DVFQUTp06hVdeeQUXL17EunXrFMkcN24c7rrrLrzwwguwWCwYOXIkfvjhByxfvhy/+c1v8Otf/1qRXKuPPvoIJSUlir/LAgCLFi3CPffcg5SUFCxevBhRUVE4ePAgVq5cif79+2P8+PEez8zIyMDWrVsxbNgwBAQEID09HampqejTpw9WrFjh8TxSFvv9fynR773d6wH2e/Z7z1F9v5d6Eo4KNOcb+pQQGxvb6Nf3NvwmQE8YPXp0k18ZrJR3331X3HLLLSIqKkr4+vqKiIgIMXr0aK9/BbXSFxytXLlSDBkyRISHhwuj0Sg6duwoJk6cKA4fPqxYphBCVFVViaeeekp0795d+Pr6ih49eohnnnlG0Yt/rFJSUkRISIgoLy9XPEsIIfbs2SPGjRsnOnfuLIKCgkRCQoJ4/PHHRVFRkSJ5J0+eFKNGjRLt27cX/v7+Ij4+Xjz33HNePQeWPIv9Xrl+r5ZeLwT7vRLY7+UyCOGl+/0QEREREZFbdH3OOhERERGRmnGyTkRERESkUpysExERERGpFCfrREREREQqxck6EREREZFKcbJORERERKRSnKwTEREREakUJ+tERERERCrFyToRERERkUpxsk5EREREpFKcrBMRERERqRQn60REREREKsXJOhERERGRSnGyTkRERESkUpysExERERGpFCfrREREREQqxck6EREREZFKcbJORERERKRSnKwTEREREakUJ+tERERERCrFyToRERERkUpxsk5EREREpFKcrBMRERERqRQn60REREREKsXJOhERERGRSnGyTkRERESkUpysExERERGpFCfrREREREQqxck6EREREZFKcbJORERERKRSnKwTEREREakUJ+tERERERCrFyToRERERkUpxsk5EREREpFKcrBMRERERqRQn60REREREKsXJOhERERGRSnGyTkRERESkUpysExERERGpFCfrREREREQqxck6EREREZFKcbJORERERKRSnKwTEREREakUJ+tERERERCrFyToRERERkUpxsk5EREREpFKcrBMRERERqRQn60REREREKsXJOjUpNzcXBoMBDz74oOxd8bgxY8bAYDDI3g0iIunY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AOD2rlRGRgYOHTqEb775BjfddJNqnd1uR1FRESwWCwYNGhS0fSWi0MNarw/t1XoyDt6zTl3iul/P07sI48ePBwB89NFHfss7efIkAOCee+5xW/fBBx943KajfWzPDTfcAKfT6fEdig8//BAOhwM33nhjp9vT0ueffw4Abhfd3/3udwEA+/btc9vmww8/RENDAyZOnMiZYIiItT4EtFfryTh4sU5d0rNnTwDw+G1oY8eOxXe+8x3s2rVLeYinrSNHjnj8iLE9rjlzXdMOunz99ddYs2aNz/vYnoceeggA8PTTT6u+8a6hoQE//elPAQCLFi3qdHuBZrPZUFVV5bb87Nmz+I//+A8AwP33369ad++99yIpKQnbtm3DoUOHlOWNjY1YtWoVAGDZsmUB3GsiChWs9frQlVpPxsHbYKhLbr31Vrz00kt4+OGHcc899yAuLg6JiYlK0di6dSu++93vYtGiRfjd736HcePGITExESUlJTh8+DDy8/Nx8OBB5eM7bx544AG89NJLWLFiBd5//30MGTIEJ06cwJ49ezB79my8+eabPu+jJwsWLMBf/vIX/OlPf8KIESNw9913w2Qy4c9//jOKiorwgx/8APfdd1/XBq0TCgoKlJkIXKqrq1VfVPKrX/0KSUlJAK7NVZydnY2pU6di4MCB6NatG06dOoU9e/agsbERM2fOxH/913+p2ouPj8fGjRtx7733YsqUKZg3bx569OiBt956C8ePH8e9996LuXPnBqyPRBQ6WOsDIxi1HgCys7OVB3z/9a9/AQA2b96Mjz/+GADw7W9/G4sXLw5EF8mftJ47kvStvbl3hRBi7dq1IjMzU0RERAgAIjU1VbW+trZW/PznPxc33nijiI2NFVFRUSItLU3MnDlTbNiwQTW3rWvu3c2bN7e7LzabTdx1112iV69eIiYmRtx4441i48aNXd5HT3PvCnFtPt+XX35Z3HTTTSI6OlpER0eLG2+8Ufz+978XDofD7ecBiMmTJ3vcZ2/z/7Z14MABj/Potv7Xuq33339fzJs3T2RkZIiEhARhsVhEUlKS+N73vidycnKE0+lsN+vjjz8WM2bMEImJiSIqKkpkZWWJX//616r5g4lIDqz1xqz1rr6398/TWJL+mIRomaeNiIiIiIh0hfesExERERHpFC/WiYiIiIh0yueL9cuXL+PJJ5/E9OnT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ADNnzlRNH+QPa9euxbPPPovbb78dd9xxBz777DPV+kC90JcsWYL4+Hjccsst6N27NyoqKrB9+3a8+eabeOKJJ9CrVy+/5kVFRWHKlCluy1977TWYzWaP6/xhwYIFGDBgAMaOHYukpCScOHECa9euxcWLF/Haa68FJHP69Om466678LOf/QxOpxPjx4/HoUOH8Pzzz+POO+/Et7/97YDkuvz5z39GVVVVwN9lAYDly5fj7rvvxrRp07BixQokJSXhs88+w5o1azB8+HDMmDHD75n5+fnYuXMnxo4di8jISOTl5SE7OxtDhgzBCy+84Pc8CizW+/8TiHof7FoPsN6z3vuP7uu9pjfh6EBnvk47EFJTU9v9+t62X9vtD5MnT+7wK4MD5dVXXxXf+c53RFJSkrBYLCIxMVFMnjw56F9BHegHjtasWSPGjBkjEhIShNlsFr169RKzZs0SX3zxRcAyhRCioaFBPPXUU6J///7CYrGIAQMGiKeffjqgD/+4TJs2TcTGxora2tqAZwkhxHvvvSemT58u+vTpI6Kjo8XQoUPFT37yE1FRURGQvOPHj4tJkyaJHj16iIiICJGeni5WrVoV1Htgyb9Y7wNX7/VS64VgvQ8E1nttmYQI0nw/RERERETkE6nvWSciIiIi0jNerBMRERER6RQv1omIiIiIdIoX60REREREOsWLdSIiIiIineLFOhERERGRTvFinYiIiIhIp3ixTkRERESkU7xYJyIiIiLSKV6sExERERHpFC/WiYiIiIh06v8D7A/+V7peg+oAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 800x550 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "with figsize(y=5.5):\n",
    "    for i in range (4):\n",
    "        random.seed(3)\n",
    "        plt.subplot(221+i)\n",
    "        train_filter(148+i, kernel=[.1, .8, .1], \n",
    "                     sensor_accuracy=.8,\n",
    "                     move_distance=4, do_print=False)\n",
    "        plt.title ('iteration {}'.format(148+i))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that there was a problem on iteration 149 as the confidence degrades. But within a few iterations the filter is able to correct itself and regain confidence in the estimated position."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Bayes Theorem and the Total Probability Theorem"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We developed the math in this chapter merely by reasoning about the information we have at each moment. In the process we discovered [*Bayes' Theorem*](https://en.wikipedia.org/wiki/Bayes%27_theorem) and the [*Total Probability Theorem*](https://en.wikipedia.org/wiki/Law_of_total_probability).\n",
    "\n",
    "Bayes theorem tells us how to compute the probability of an event given previous information. \n",
    "\n",
    "We implemented the `update()` function with this probability calculation:\n",
    "\n",
    "$$ \\mathtt{posterior} = \\frac{\\mathtt{likelihood}\\times \\mathtt{prior}}{\\mathtt{normalization\\, factor}}$$ \n",
    "\n",
    "We haven't developed the mathematics to discuss Bayes yet, but this is Bayes' theorem. Every filter in this book is an expression of Bayes' theorem. In the next chapter we will develop the mathematics, but in many ways that obscures the simple idea expressed in this equation:\n",
    "\n",
    "$$ updated\\,knowledge = \\big\\|likelihood\\,of\\,new\\,knowledge\\times prior\\, knowledge \\big\\|$$\n",
    "\n",
    "where $\\| \\cdot\\|$ expresses normalizing the term.\n",
    "\n",
    "We came to this with simple reasoning about a dog walking down a hallway. Yet, as we will see the same equation applies to a universe of filtering problems. We will use this equation in every subsequent chapter.\n",
    "\n",
    "Likewise, the `predict()` step computes the total probability of multiple possible events. This is known as the *Total Probability Theorem* in statistics, and we will also cover this in the next chapter after developing some supporting math.\n",
    "\n",
    "For now I need you to understand that Bayes' theorem is a formula to incorporate new information into existing information."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Summary\n",
    "\n",
    "The code is very short, but the result is impressive! We have implemented a form of a Bayesian filter. We have learned how to start with no information and derive information from noisy sensors. Even though the sensors in this chapter are very noisy (most sensors are more than 80% accurate, for example) we quickly converge on the most likely position for our dog. We have learned how the predict step always degrades our knowledge, but the addition of another measurement, even when it might have noise in it, improves our knowledge, allowing us to converge on the most likely result.\n",
    "\n",
    "This book is mostly about the Kalman filter. The math it uses is different, but the logic is exactly the same as used in this chapter. It uses Bayesian reasoning to form estimates from a combination of measurements and process models. \n",
    "\n",
    "**If you can understand this chapter you will be able to understand and implement Kalman filters.** I cannot stress this enough. If anything is murky, go back and reread this chapter and play with the code. The rest of this book will build on the algorithms that we use here. If you don't understand why this filter works you will have little success with the rest of the material. However, if you grasp the fundamental insight - multiplying probabilities when we measure, and shifting probabilities when we update leads to a converging solution - then after learning a bit of math you are ready to implement a Kalman filter."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## References\n",
    "\n",
    " * [1] D. Fox, W. Burgard, and S. Thrun. \"Monte carlo localization: Efficient position estimation for mobile robots.\" In *Journal of Artifical Intelligence Research*, 1999.\n",
    " \n",
    " http://www.cs.cmu.edu/afs/cs/project/jair/pub/volume11/fox99a-html/jair-localize.html\n",
    "\n",
    "\n",
    " * [2] Dieter Fox, et. al. \"Bayesian Filters for Location Estimation\". In *IEEE Pervasive Computing*, September 2003.\n",
    " \n",
    " http://swarmlab.unimaas.nl/wp-content/uploads/2012/07/fox2003bayesian.pdf\n",
    " \n",
    " \n",
    " * [3] Sebastian Thrun. \"Artificial Intelligence for Robotics\".\n",
    " \n",
    " https://www.udacity.com/course/cs373\n",
    " \n",
    " \n",
    " * [4] Khan Acadamy. \"Introduction to the Convolution\"\n",
    " \n",
    " https://www.khanacademy.org/math/differential-equations/laplace-transform/convolution-integral/v/introduction-to-the-convolution\n",
    " \n",
    " \n",
    "* [5] Wikipedia. \"Convolution\"\n",
    "\n",
    " http://en.wikipedia.org/wiki/Convolution\n",
    "\n",
    "* [6] Wikipedia. \"Law of total probability\"\n",
    "\n",
    "  http://en.wikipedia.org/wiki/Law_of_total_probability\n",
    "  \n",
    "* [7] Wikipedia. \"Time Evolution\"\n",
    "\n",
    " https://en.wikipedia.org/wiki/Time_evolution\n",
    " \n",
    "* [8] We need to rethink how we teach statistics from the ground up\n",
    " \n",
    " http://www.statslife.org.uk/opinion/2405-we-need-to-rethink-how-we-teach-statistics-from-the-ground-up"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.1"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "state": {},
    "version_major": 2,
    "version_minor": 0
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
